PDA

View Full Version : سوال: افزودن آیتم به combobox



momimomi
سه شنبه 25 مهر 1391, 16:01 عصر
باسلام
آیا حین اجرای برنامه می توان به آیتم های combo box آیتمی اضافه کرد و با بستن برنامه و اجرای مجدد، آن آیتم جدید را در لیست باز شونده ی combo box مشاهده کرد؟ آیا میتوان بدون اتصال به بانک اطلاعاتی و فایل خاصی این کار را انجام داد؟ لطفا با جزئیات توضیح دهید.
با تشکر

veniz2008
سه شنبه 25 مهر 1391, 16:50 عصر
سلام. چند روز پیش همین سوال رو مطرح کردید ولی ظاهرا به جواب مورد نظر نرسیدید. نیازی به دیتابیس ندارید. از Setting براي اينكار استفاده کنید. کامل توضیح میدم تا مشکلی براتون پیش نیاد :
یک متغیر رشته ای با نام Reshte و از نوع setting تعریف کنید و یک تکست باکس هم برای اضافه کردن آیتم مورد نظرتون روی فرم بذارید. درون دکمه اضافه کردن کدهای زیر رو قرار بدید( با این کدها همزمان که داده ای را درج میکنید هم درون متغیر setting ذخیره میشه و همزمان درون کمبوباکس هم ریخته میشه):

Properties.Settings.Default.Reshte += textBox1.Text.Trim() +",";
Properties.Settings.Default.Save();
comboBox1.Items.Add(textBox1.Text.Trim());


برای نمایش آیتم های ذخیره شده ،در فرم لود کدهای زیر رو قرار بدید تا در صورتیکه آیتمی رو اضافه کردید (یعنی آیتمی درون settting بود) رو درون کمبوباکس نمایش بده :

string mysetting = Properties.Settings.Default.Reshte;
if (mysetting.Length > 0)
{
string[] columns = mysetting.Split(',');
foreach (string st in columns)
{
if(!string.IsNullOrEmpty(st))
comboBox1.Items.Add(st);
}
}

موفق باشی دوست عزیز.

momimomi
چهارشنبه 26 مهر 1391, 05:30 صبح
سلام. چند روز پیش همین سوال رو مطرح کردید ولی ظاهرا به جواب مورد نظر نرسیدید. نیازی به دیتابیس ندارید. از Setting براي اينكار استفاده کنید. کامل توضیح میدم تا مشکلی براتون پیش نیاد :
یک متغیر رشته ای با نام Reshte و از نوع setting تعریف کنید و یک تکست باکس هم برای اضافه کردن آیتم مورد نظرتون روی فرم بذارید. درون دکمه اضافه کردن کدهای زیر رو قرار بدید( با این کدها همزمان که داده ای را درج میکنید هم درون متغیر setting ذخیره میشه و همزمان درون کمبوباکس هم ریخته میشه):

Properties.Settings.Default.Reshte += textBox1.Text.Trim() +",";
Properties.Settings.Default.Save();
comboBox1.Items.Add(textBox1.Text.Trim());


برای نمایش آیتم های ذخیره شده ،در فرم لود کدهای زیر رو قرار بدید تا در صورتیکه آیتمی رو اضافه کردید (یعنی آیتمی درون settting بود) رو درون کمبوباکس نمایش بده :

string mysetting = Properties.Settings.Default.Reshte;
if (mysetting.Length > 0)
{
string[] columns = mysetting.Split(',');
foreach (string st in columns)
{
if(!string.IsNullOrEmpty(st))
comboBox1.Items.Add(st);
}
}

موفق باشی دوست عزیز.

سلام به شما دوست عزیز با تشکر از وقتی که گذاشتین، آیا میشه به جای ایجاد یه تکست باکس جدید از همون کمبو باکس استفاده کرد؟

veniz2008
چهارشنبه 26 مهر 1391, 10:13 صبح
بله میشه. کمبوباکس در حالت عادی اجازه تایپ کردن درونش رو میده ولی اگر خاصیت dropdownstyle رو روی dropdownlist بذارید دیگه اجازه تایپ کردن رو بهت نمیدونه. شما برای اینکه از کمبو استفاده کنید در دستور بالا combobox1.Text رو به جای textbox1.Text قرار بدید.

Mahmoud Zaad
چهارشنبه 26 مهر 1391, 11:35 صبح
اینکه ما بشینیم و منتظر باشیم تا یه نفر همه کارهای ما رو انجام بده، اصلاً قشنگ نیست. شما همون چند روز پیش می تونستید جوابتون رو بگیرید.

r_s1389@yahoo.com
چهارشنبه 26 مهر 1391, 13:02 عصر
سلام میشه بگین چه جوری میشه یک متغییر از نوع setting را تعریف کرد

Mahmoud Zaad
چهارشنبه 26 مهر 1391, 13:09 عصر
اگه به پایین نام پروژه توی سولوشن اکسپلورر توجه کنید یه پوشه هست به اسم Properties اگه روی علامت + کنار این پوشه کلیک کنید سه تا آیتم می بینید که آخریش Settings.settings هست. روی این مورد دابل کلیک کنید یه تب جدید باز میشه که می تونید اینجا هر نوع متغیری تعریف کنید. البته یه راه دیگه برای دسترسی به این تب، استفاده از منوی Project > YourSolutionName Properties و تب Settings هست.

momimomi
چهارشنبه 26 مهر 1391, 13:49 عصر
اینکه ما بشینیم و منتظر باشیم تا یه نفر همه کارهای ما رو انجام بده، اصلاً قشنگ نیست. شما همون چند روز پیش می تونستید جوابتون رو بگیرید.

همیشه بهتره قبل از اینکه در مورد کسی قضاوت کنید، شناخت کافی از شخصیت وی داشته باشید.

Mahmoud Zaad
چهارشنبه 26 مهر 1391, 16:21 عصر
همیشه بهتره قبل از اینکه در مورد کسی قضاوت کنید، شناخت کافی از شخصیت وی داشته باشید.
این رفتار ما هستند که نشان دهنده شخصیت ما هستند، اینطور که با توجه به پست 3 مشخصه، شما حتی امتحان نکردید ببینید میشه به جای تکست باکس از کمبو باکس استفاده کرد یا نه؟!!

momimomi
چهارشنبه 26 مهر 1391, 21:15 عصر
این رفتار ما هستند که نشان دهنده شخصیت ما هستند، اینطور که با توجه به پست 3 مشخصه، شما حتی امتحان نکردید ببینید میشه به جای تکست باکس از کمبو باکس استفاده کرد یا نه؟!!

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

momimomi
چهارشنبه 26 مهر 1391, 21:18 عصر
بله میشه. کمبوباکس در حالت عادی اجازه تایپ کردن درونش رو میده ولی اگر خاصیت dropdownstyle رو روی dropdownlist بذارید دیگه اجازه تایپ کردن رو بهت نمیدونه. شما برای اینکه از کمبو استفاده کنید در دستور بالا combobox1.Text رو به جای textbox1.Text قرار بدید.

از بذل توجه، و حوصله ی جناب عالی بسیار بسیار ممنون.

Mahmoud Zaad
چهارشنبه 26 مهر 1391, 21:27 عصر
شما اجباری نداری که جواب بدی، از همه افرادی که جواب میدن از جمله شما دوست عزیز تشکر میکنم، چون بدون توقع و بی سرزنش و بی منت و بی... جواب میدن.
من فقط یه نکته رو برادرانه به شما گفتم، هیچ وقت هم برای جوابهایی که میدم نیازی به تشکر ندارم، چون با انتخاب خودم به سوالها جواب میدم. هیچ منتی هم بر کسی ندارم. شاید نحوه بیان کردنم درست نبوده، در هر صورت اگه ناراحت شدید معذرت می خوام.

momimomi
چهارشنبه 26 مهر 1391, 21:43 عصر
من فقط یه نکته رو برادرانه به شما گفتم، هیچ وقت هم برای جوابهایی که میدم نیازی به تشکر ندارم، چون با انتخاب خودم به سوالها جواب میدم. هیچ منتی هم بر کسی ندارم. شاید نحوه بیان کردنم درست نبوده، در هر صورت اگه ناراحت شدید معذرت می خوام.

دوست عزیز منظوری نداشتم، من هم از شما گرامی عذرخواهی میکنم، دیگه یه جوری من مبتدی رو تحمل کنید:لبخندساده:

momimomi
سه شنبه 24 اردیبهشت 1392, 06:01 صبح
سلام. چند روز پیش همین سوال رو مطرح کردید ولی ظاهرا به جواب مورد نظر نرسیدید. نیازی به دیتابیس ندارید. از Setting براي اينكار استفاده کنید. کامل توضیح میدم تا مشکلی براتون پیش نیاد :
یک متغیر رشته ای با نام Reshte و از نوع setting تعریف کنید و یک تکست باکس هم برای اضافه کردن آیتم مورد نظرتون روی فرم بذارید. درون دکمه اضافه کردن کدهای زیر رو قرار بدید( با این کدها همزمان که داده ای را درج میکنید هم درون متغیر setting ذخیره میشه و همزمان درون کمبوباکس هم ریخته میشه):

Properties.Settings.Default.Reshte += textBox1.Text.Trim() +",";
Properties.Settings.Default.Save();
comboBox1.Items.Add(textBox1.Text.Trim());




برای نمایش آیتم های ذخیره شده ،در فرم لود کدهای زیر رو قرار بدید تا در صورتیکه آیتمی رو اضافه کردید (یعنی آیتمی درون settting بود) رو درون کمبوباکس نمایش بده :

string mysetting = Properties.Settings.Default.Reshte;
if (mysetting.Length > 0)
{
string[] columns = mysetting.Split(',');
foreach (string st in columns)
{
if(!string.IsNullOrEmpty(st))
comboBox1.Items.Add(st);
}
}

موفق باشی دوست عزیز.

سلام
بنده این کدهارو توی برنامه ایجاد کردم و پروژه تکمیل شد, اما حالا که پروژه تست میشه آیتم تکراری به کمبوباکس افزوده می شود؟

veniz2008
سه شنبه 24 اردیبهشت 1392, 22:00 عصر
یعنی چی تکراری به کمبوباکس اضافه میشه؟.
منظورتون اینه که شما یه بار مینویسید ولی داخل کمبو چندبار نمایش داده میشه؟
یا اینکه میتونید یه آیتم رو چندبار درون کمبو درج کنید؟

momimomi
چهارشنبه 25 اردیبهشت 1392, 06:12 صبح
سلام
فرض کنید یکی از آیتمهای پیشفرض کمبوباکس کلمه "حسن" باشد اگر آن را انتخاب کرده و باتن ثبت را در فرم بزنیم, بار دیگر که کمبو باکس را باز می کنیم در آیتمهای انتخابی 2 کلمه حسن به چشم می خورد, هر آیتمی که در کمبوباکس تایپ یا انتخاب شود همین اتفاق برایش می افتد, اگر کاربر 10 بار یک کلمه را تایپ کرده یا از کمبوباکس انتخاب کند, برنامه 10 عدد از آن کلمه را به آیتمهای کمبو باکس اضافه می کند.

momimomi
یک شنبه 29 اردیبهشت 1392, 20:28 عصر
آقا اگه کسی راه دیگه ای بلده بگه خیلی بهش نیاز دارم
ممنون

younes221
یک شنبه 29 اردیبهشت 1392, 20:48 عصر
فرض کنید یکی از آیتمهای پیشفرض کمبوباکس کلمه "حسن" باشد اگر آن را انتخاب کرده و باتن ثبت را در فرم بزنیم, بار دیگر که کمبو باکس را باز می کنیم در آیتمهای انتخابی 2 کلمه حسن به چشم می خورد, هر آیتمی که در کمبوباکس تایپ یا انتخاب شود همین اتفاق برایش می افتد, اگر کاربر 10 بار یک کلمه را تایپ کرده یا از کمبوباکس انتخاب کند, برنامه 10 عدد از آن کلمه را به آیتمهای کمبو باکس اضافه می کند.
کد که مشکلی نداره ، شاید سوال شما جزئیات بیشتری داره ، آیا شما دوست دارید آیتم تکراری به ComboBox اضافه بشه یا خیر ؟ به احتمال زیاد شما به جای textBox1.Text از ComboBox1.Text استفاده کردید به خاطر همینه که همون آیتم ثبت میشه و دوباره نمایش داده میشه . کدتون رو بزارید تا بهتر نتیجه گیری کرد .

Mahmoud Zaad
یک شنبه 29 اردیبهشت 1392, 20:55 عصر
می تونید یه شرط بذارید که چک بشه کلمه تکراری ثبت نشه، مثل این:
if (!Properties.Settings.Default.Reshte.Contains(text Box1.Text))
{
//کدهایی که برای ذخیره نوشتید

Properties.Settings.Default.Reshte += textBox1.Text.Trim() +",";
Properties.Settings.Default.Save();
comboBox1.Items.Add(textBox1.Text.Trim());


}
به کاراکتر ! قبل از Properties توی شرط هم دقت کنید

momimomi
یک شنبه 29 اردیبهشت 1392, 20:56 عصر
کد که مشکلی نداره ، شاید سوال شما جزئیات بیشتری داره ، آیا شما دوست دارید آیتم تکراری به ComboBox اضافه بشه یا خیر ؟ به احتمال زیاد شما به جای textBox1.Text از ComboBox1.Text استفاده کردید به خاطر همینه که همون آیتم ثبت میشه و دوباره نمایش داده میشه . کدتون رو بزارید تا بهتر نتیجه گیری کرد .

سلام دوست عزیز
دقیقا از همون کدهای veniz2008 استفاده میکنم و از تکست باکس هم استفاده نمیکنم هم انتخاب و هم تایپ روی کمبو باکس انجام میشه, آیتم تکراری هم نمی خوام درج بشه.
کد ها رو هم در پست بعدی میذارم.
ممنون

momimomi
یک شنبه 29 اردیبهشت 1392, 21:15 عصر
می تونید یه شرط بذارید که چک بشه کلمه تکراری ثبت نشه، مثل این:
if (!Properties.Settings.Default.Reshte.Contains(text Box1.Text))
{
//کدهایی که برای ذخیره نوشتید

Properties.Settings.Default.Reshte += textBox1.Text.Trim() +",";
Properties.Settings.Default.Save();
comboBox1.Items.Add(textBox1.Text.Trim());


}
به کاراکتر ! قبل از Properties توی شرط هم دقت کنید

سلام دوست عزیز
باز هم تکراری ذخیره می کنه.

momimomi
یک شنبه 29 اردیبهشت 1392, 21:17 عصر
104396این هم سورس کمبو باکس

momimomi
دوشنبه 30 اردیبهشت 1392, 13:27 عصر
با سورس هم کسی نتونست مشکل رو حل کنه؟

momimomi
یک شنبه 05 خرداد 1392, 05:28 صبح
سلام
اگه کسی سرحاله روش فکر کنه ثواب داره به خدا, سورس کدها رو هم تو پست 22 گذاشتم.
مطمئنم این مشکل خیلی هاست.