PDA

View Full Version : سوال: سوا در مورد ComboBox



saber_ershadi
شنبه 11 آذر 1391, 14:18 عصر
سلام
تو برنامه ام یه دیتا گرید دارم که لیست درس ها توش ثبت شده یکی از فیلد هاش نام کلاسه مثلا اول، دوم یا سوم این اطلاعات رو میخوام ویرایش کنم ، میفرستمشون تو فرم ویرایش که همون فرم ثیت اولیه اطلاعاته که با گرفتن یه متغییر و و تغییر حالت اون صفحه رو به ثبت یا ویرایش تغییر میدم ..
نام کلاس در فرم ویرایش یا همون ثبت در comboBox دخیره میشه که اطلاعات comboBox رو از بانک میخونم و تو combo میریزم اینم دستورش :

paye1 j1 = new paye1();
comboBox2.ValueMember = "idstpaye";
comboBox2.DisplayMember = "stpaye";
comboBox2.DataSource = j1.Show();


من میخوام مقدار کلاس رو برای combobox تو فرم ویرایش بفرستم و مقدار که فرستاده شد انتخاب شده قرار بگیره تا وقتی کاربر ذخیره رو انجام بده تا اگه از combo کلاس چیزی انتخاب نکرد اطلاعاتش تغییر نکنه
لطفا یکی راهنمایی کنه.

plus
شنبه 11 آذر 1391, 20:45 عصر
شما باید مقدار سلول (آی دی کلاس) در دیتاگرید رو بخونی و به مشخصه SelectedValue ی ComboBox بدی.

saber_ershadi
شنبه 11 آذر 1391, 21:09 عصر
یه چند بار دستکاری کردم به نتیجه نرسیدم
یا نمیشد یا میریزم تو و انتخب میشه ولی میزنم بقیه رو پاک میکنم نباید پاک شه چون شاید کاربر بخواد چیز دیگه ای رو انتخاب کنه

saied_hacker
شنبه 11 آذر 1391, 21:24 عصر
یه راه می تونه این باشه که بیای یه رفرنس از فرم اصلیت بدی به فرم ویرایشت
و یه پارامترم بهش بده که ایندکس کومبوت باشه و تو فرم 2 هم اطلاعات اینور ( فرم اصلی و کل کلاس ها و ..) رو داری هم میتونی موقع ذخیره بیای چک کنی که ایندکس انتخاب شده با پارمتری که ارسال شده یکی هس یا نه

saber_ershadi
شنبه 11 آذر 1391, 21:24 عصر
این لینک پروژه ممنون میشم یه نگاهی بندازید برید تو قسمت ویرایش درس ها ویرایش جاهای دیگه که combobox داره ببینید
http://www.kooshahootan.com/RgStudent2.rar
پسوند پوشه 7z هست که الان برا آپلود نوشتمش rar بعد دانلود دوباره ردیفش کنید

saied_hacker
شنبه 11 آذر 1391, 21:36 عصر
من جای دیگه ای combo ندیدم :) شما مطمئنی؟

saber_ershadi
شنبه 11 آذر 1391, 22:01 عصر
combo که یکی بر سال و یکی دیگه برا کلاس تو 3 تا فرم استفاده کردم که همشون فرقی با هم ندارن منظورم این بودکه میتونی این combo ها رو تو فرم های دیگه هم ببینین

saber_ershadi
شنبه 11 آذر 1391, 22:42 عصر
اگه ممکنه واضح تر در موردش توضیح بدین یا عملی نشون بدین خودپروژه رو گذاشتم

saber_ershadi
یک شنبه 12 آذر 1391, 09:24 صبح
دوستان یه کمک به ما هم کنید

cherchil_hra
یک شنبه 12 آذر 1391, 10:10 صبح
سلام
تو برنامه ام یه دیتا گرید دارم که لیست درس ها توش ثبت شده یکی از فیلد هاش نام کلاسه مثلا اول، دوم یا سوم این اطلاعات رو میخوام ویرایش کنم ، میفرستمشون تو فرم ویرایش که همون فرم ثیت اولیه اطلاعاته که با گرفتن یه متغییر و و تغییر حالت اون صفحه رو به ثبت یا ویرایش تغییر میدم ..
نام کلاس در فرم ویرایش یا همون ثبت در comboBox دخیره میشه که اطلاعات comboBox رو از بانک میخونم و تو combo میریزم اینم دستورش :

paye1 j1 = new paye1();
comboBox2.ValueMember = "idstpaye";
comboBox2.DisplayMember = "stpaye";
comboBox2.DataSource = j1.Show();


من میخوام مقدار کلاس رو برای combobox تو فرم ویرایش بفرستم و مقدار که فرستاده شد انتخاب شده قرار بگیره تا وقتی کاربر ذخیره رو انجام بده تا اگه از combo کلاس چیزی انتخاب نکرد اطلاعاتش تغییر نکنه
لطفا یکی راهنمایی کنه.

یک متغیر از نوع int توی فرم d_new تعریف کن. زمانی که داری اطلاعاتت رو به این فرم میدی مقدار این متغیرت رو برابر (int)dg1["idstpaye", dg1.CurrentRow.Index].Value; قرار بده!
بعد از این دستور comboBox2.DataSource = j1.Show(); مقدار SelectedValue کمبو باکست رو برابر متغیرت بذار.

به نظر من جای اینکه بیای توی فرم d_edit اشیا فرم d_new رو مقدار دهی کنی
1. یا متد سازنده فرمت رو پارامتری کن (فرم d_new)
2.یا اینکه 5 property داخل فرم d_new تعریف کن

موفق باشی!

saber_ershadi
یک شنبه 12 آذر 1391, 10:43 صبح
Combo box کلاس درست شد ممنون
حالا برای اینکه combo سال تحصیلی رو هم همینطور کنیم باید همین کار رو دوباره انجام بدیم؟

cherchil_hra
یک شنبه 12 آذر 1391, 10:49 صبح
Combo box کلاس درست شد ممنون
حالا برای اینکه combo سال تحصیلی رو هم همینطور کنیم باید همین کار رو دوباره انجام بدیم؟

بله! مهم این هستش که شما بعداز این که کمبوباکستون رو پر کردید مقدار مورد نظر رو از داخلش انتخاب کنید نه قبلش

saber_ershadi
یک شنبه 12 آذر 1391, 10:57 صبح
یه چیز دیگه برا کلاس فیلد IDstppayeرو داشتم که مخصوص پایه بود که تو دیتا گرید آورده بودمش
ولی برا سال تحصیلی همچین فیلدی برا اون در نظر نگرفتم البته هست ولی به اسم id اگه من مقدار هی رو از دیتا گرید بفرستم
به فرم new متوجه میشه که این id برا سال تحصیلیه یا برا یه جدول دیگه چون هر دو جدول فیلد id دارن مثل کلاس ننوشتم کلاس بود idstpaye
اینو چیکارش کنم؟

saber_ershadi
یک شنبه 12 آذر 1391, 11:04 صبح
این کد تو صفحه ثبت دانش آموز جدیدFRM_new

paye1 j1 = new paye1();
comboBox1.ValueMember = "idstpaye";
comboBox1.DisplayMember = "stpaye";
comboBox1.DataSource = j1.Show();
comboBox1.SelectedValue=temp1;

saleT j2 = new saleT();
comboBox2.DisplayMember = "sal";
comboBox2.DataSource = j2.Show();

cherchil_hra
یک شنبه 12 آذر 1391, 11:14 صبح
یه چیز دیگه برا کلاس فیلد IDstppayeرو داشتم که مخصوص پایه بود که تو دیتا گرید آورده بودمش
ولی برا سال تحصیلی همچین فیلدی برا اون در نظر نگرفتم البته هست ولی به اسم id اگه من مقدار هی رو از دیتا گرید بفرستم
به فرم new متوجه میشه که این id برا سال تحصیلیه یا برا یه جدول دیگه چون هر دو جدول فیلد id دارن مثل کلاس ننوشتم کلاس بود idstpaye
اینو چیکارش کنم؟

شما باید ببینی از چی کمبو میخوای استفاده کنی، Valuemember و یا DisplayMember
comboBox2.DisplayMember = "sal";
comboBox2.DataSource = j2.Show();
اینجا ValueMember رو set نکردی و موقع ثبت هم داری از خاصیت Text کمبو استفاده می کنی، درسته؟
پس نیاز به پاس دادن ID نداری. بعداز این که کمبوت رو پر کردی comboBox2.Text=مقدار سال

موفق باشید!

saber_ershadi
یک شنبه 12 آذر 1391, 11:16 صبح
میتونم مثله قبلی که idstpaye رو میفرستادیم به متغییر این کارو بکنیم ؟

()dg1["sal", dg1.CurrentRow.Index].Value.ToString;


و

comboBox1.SelectedText=temp1;

cherchil_hra
یک شنبه 12 آذر 1391, 11:24 صبح
میتونم مثله قبلی که idstpaye رو میفرستادیم به متغییر این کارو بکنیم ؟

()dg1["sal", dg1.CurrentRow.Index].Value.ToString;


و

comboBox1.SelectedText=temp1;


بله همین کار رو باید انجام بدی!

saber_ershadi
یک شنبه 12 آذر 1391, 11:24 صبح
درسته حالا چطور تو حالت انتخاب قرار بگیره تو کلاس با selectedValue شد تو این که مثله قیلی از آیدیش استفاده نکردمو فقط text رو دارم چطور؟

cherchil_hra
یک شنبه 12 آذر 1391, 11:32 صبح
درسته حالا چطور تو حالت انتخاب قرار بگیره تو کلاس با selectedValue شد تو این که مثله قیلی از آیدیش استفاده نکردمو فقط text رو دارم چطور؟

comboBox2.Text=مقدار سال

saber_ershadi
یک شنبه 12 آذر 1391, 11:48 صبح
ممنون cherchil_hra (http://barnamenevis.org/member.php?12144-cherchil_hra) عزیز از اینکه وقت گذاشتی
درست شد.