PDA

View Full Version : سوال: اضافه کردن به آیتمهای یک ComboBox



Smoke_1110
سه شنبه 25 مرداد 1390, 14:47 عصر
سلام
من در فرم برنامه ام چند کمبو باکس دارم که در هنگام برنامه نویسی در گزینه Edit Items انتخابهای مورد نظر رو براش تعریف کردم و در هنگام ذخیره هم از خاصیت تکس استفاده می کنم . حالا گاهی اوقات باید یک آیتم جدید به این کمبوباکس اضافه کنم . در واقع با استفاده از Add Items انتخاب جدید اضافه میشه ولی وقتی دوباره فرم رو می بندم و مجدد بازش میکنم اون انتخاب از بین رفته .
حالا چه کار کنم که وقتی یک انتخاب اضافه می کنم دیگه ثابت باشه ؟
با تشکر

morteza271
سه شنبه 25 مرداد 1390, 14:55 عصر
برای این کار لازمه که لیست آیتم های کامبوباکس رو در دیتابیس ذخیره کنید و در هنگام لود فرم از دیتابیس بخونید.
وقتی هم میخواهید یک آیتم جدید اضافه کنید باید اونو به دیتابیس اضافه کنید.
موفق باشید

Salar Ashgi
چهارشنبه 26 مرداد 1390, 00:04 صبح
سوالتان کمی گنگ است ، ولی اگه بحث ورود آیتم هاست :


ComboBox cmb = new ComboBox();
string[] data = { "ali", "reza", "salar","hossain","farhad" };
cmb.Items.AddRange(data);

اکثر اوقات پر کردن داده ها ممکن است در رویداد کلیک ، یک کنترلی انجام شود ، مثال :


private void button1_Click(object sender, EventArgs e)
{
ComboBox cmb = new ComboBox();
cmb.Items.Add("salar");

}

این طبیعی است که افزوده شدن آیتم "salar" مشروط بر فراخوانی شدن رویداد کلیک button1 می باشد .

و اگر میخواهید همیشه داده های ثابتی تو کمبو باشن ، و حالا اگه از قبل مشخص باشه با پراپرتی Edit Items میتونید همشونو

اضافه کنید و اگر میخواین بشکل پویا اضافه بشه ، همانطور که دوست عزیزی هم گفتن ، داده ها باید تویه فایل یا پایگاه داده ای ثبت شده

باشند ، مثال :


private void button1_Click(object sender, EventArgs e)
{
ComboBox cmb = new ComboBox();
string[] data = System.IO.File.ReadAllLines("D:\\data.txt");
cmb.Items.AddRange(data);

}


امیدوارم به مقصودتان رسیده باشید .

موفق باشید ./

cardano7
چهارشنبه 26 مرداد 1390, 07:45 صبح
سلام
ولی وقتی دوباره فرم رو می بندم و مجدد بازش میکنم اون انتخاب از بین رفته .

برای اینکه فرم جدید شما همون فرم قبلی نیست. یکی دیگه تعریف کردید. برای همین کمبو باکسش هم همون قبلی نیست.


حالا چه کار کنم که وقتی یک انتخاب اضافه می کنم دیگه ثابت باشه ؟
همه ی اعضا را بخون و در منبع داده ی برنام ذخیره کن.

Smoke_1110
چهارشنبه 26 مرداد 1390, 13:59 عصر
حالا براش بانک تشکیل دادم ولی با دستور combobox1.text ذخیره نمیشه
مثال بگم مثل در فرم من سه تا تکست باکس وجود داره مبروط به نام و نام خانوادگی و شماره شناسنامه و یک کمبو باکس که میزان تحصیلات در اون هست در حالت قبلی در دستور اینرست اطلاعات رو ذخیره می کرد اما الان که کمبو رو به بانک وصل کردم دیگه دستور اینرست قبلی که از خاصیت تکست برا کمبو استفاده می کردم الان ارور میده باید از چه خاصیتی استفاده کنم؟

cardano7
چهارشنبه 26 مرداد 1390, 14:36 عصر
ببین بیا مسئله را تفکیک کنیم تا مشکل شفاف بشه.
شما الان بحث کمبو باکس را با بانک داده ترکیب کردید که بهتره تکلیف روشن بشه با کمبو باکس مشکل داریم یا با بانک.

اول از همه من نفهمیدم منظور از این جمله چیه؟

ولی با دستور combobox1.text ذخیره نمیشه
مگه قراره که combobox1.text (که دستور هم نیست بلکه property هست) چیزی را ذخیره کنه؟

دوم شما بانک را چطور به کمبو باکس وصل می کنید؟
سوم اگر داده ای را اضافه کردید، آن را به بانک اضافه کنید و بعد دوباره کمبوباکس را دوباره لود کنید نه اینکه دیتا را به کمبو باکس اضافه کنید و بعد منتظر تاثیر آن روی دیتابیس باشید.

Smoke_1110
چهارشنبه 26 مرداد 1390, 20:01 عصر
دستور ذخیره کلی رو میگم به این صورت :( tableadaptor.insert(textbox.text,combobox1.text
حالا کمبو رو بانک متصل کردم برای اضافه کردن به کمبو مشکل ندارم مشکل من در ذخیره کلی اطلاعات فرم هست که دستورش قبلا به این صورت بالا بوده
حالا که کمبو رو به بانکی که اطلاعات مقادیر اون درش هست وصل کردم دیگه با خاصیت تکست ذخیره نمیکنه
در ضمن اگر هم ذخیره بشه در هنگام جستجوی اطلاعات مقادیر کمبو باکس که من سرچ کردم همون مقادیر بانک مربوط به دادهای کمو باکس هستش نه اون اطلاعات فرد

cardano7
شنبه 29 مرداد 1390, 10:13 صبح
submitchanges را استفاده می کنید؟