PDA

View Full Version : کپی کردن یک ComboBox به ComboBox دیگر



seniamail
یک شنبه 22 دی 1387, 14:23 عصر
با سلام
چگونه میتوان کل محتویات یک ComboBox را در ComboBox دیگر کپی کرد؟
من از foreach استفاده کرده ام ولی میخواهم کد من یک خط باشد و از foreach استفاده نکنم.
آیا میتوان از متد COPY یا AddRange استفاده کرد؟ چطور؟

sepehr.net
یک شنبه 22 دی 1387, 17:56 عصر
سلام
میتونین از متد Bind استفاده کنید به این صورت که د ر متد Bind دومین ComboBox نام اولین ComboBox رو قرار بدین
شرمنده من VS رو سیستم ندارم نمیتونم نمونه کد براتون بزارم

hojjat_gh
یک شنبه 22 دی 1387, 18:52 عصر
با سلام
میتونی یه کمبو باکس کپسوله کنی و بعد از طریق کمبوی میانجی کپسوله مقادیر کمبوی یک رو به کمبوی دو پاس بدی

seniamail
دوشنبه 23 دی 1387, 08:36 صبح
با سلام
میتونی یه کمبو باکس کپسوله کنی و بعد از طریق کمبوی میانجی کپسوله مقادیر کمبوی یک رو به کمبوی دو پاس بدی

چطوری؟ میتونی بیشتر توضیح بدی؟

sinpin
دوشنبه 23 دی 1387, 09:24 صبح
میخواهم کد من یک خط باشد و از foreach استفاده نکنم.یک راه اینه :

comboBox2.Items.AddRange(comboBox1.Items.Cast<Object>().ToArray());ممکنه روش ساده تری هم باشه

seniamail
دوشنبه 23 دی 1387, 10:11 صبح
یک راه اینه :

comboBox2.Items.AddRange(comboBox1.Items.Cast<Object>().ToArray());ممکنه روش ساده تری هم باشه

Cast رو نمیشناسه یعنی چنین چیزی برای Items وجود نداره

sinpin
دوشنبه 23 دی 1387, 13:00 عصر
Cast رو نمیشناسه یعنی چنین چیزی برای Items وجود نداره
نسخه دات نت فریمورک شما چند هست ؟

sepehr.net
دوشنبه 23 دی 1387, 15:15 عصر
شرمنده من به علت نداشتن VS کلاس BindigSource را Bind معرفی کردم
به این صورته : (شاید بشه بهتر از این روش هم عمل کرد!!)

BindingSource b = new BindingSource(comboBox1, "Items");
comboBox2.DataSource = b;1 روش دیگر هم هست : (البته من این رو نتونستم برا ComboBox استفاده کنم !!!)

textbox2.DataBinding.Add("Text",textbox1,"Text");

hhiliahh
سه شنبه 24 دی 1387, 20:56 عصر
دوست عزیز میتونی از روش بسیار ساده زیر استفاه کنی :
comboBox2.DataSource = comboBox1.Items

newgoldenman
سه شنبه 24 دی 1387, 23:13 عصر
كسي ميتونه با دليل قانع كننده و علمي، ثابت كنه يا قانع كنه كه كدوم يك از روشهايي كه هر كدوم از دوستان فرمودند، بهينه تر و پرسرعت تر هست؟ و همچنين فضاي حافظه و CPU كمتري رو براي اجرا كردنش اشغال ميكنه؟ (به نظرم تاپيك جديد نزنم بهتره! همينجا بحث رو كمي علمي تر كنيم. ممنونم)

seniamail
چهارشنبه 25 دی 1387, 08:30 صبح
فکر میکنم این روش سریعتر باشه چون آیتم های کمبوباکس را مستقیما اتصال داده

دوست عزیز میتونی از روش بسیار ساده زیر استفاه کنی :
comboBox2.DataSource = comboBox1.Items

ولی تو این روش اینطور نیست

شرمنده من به علت نداشتن VS کلاس BindigSource را Bind معرفی کردم
به این صورته : (شاید بشه بهتر از این روش هم عمل کرد!!)

BindingSource b = new BindingSource(comboBox1, "Items");
comboBox2.DataSource = b;1 روش دیگر هم هست : (البته من این رو نتونستم برا ComboBox استفاده کنم !!!)

textbox2.DataBinding.Add("Text",textbox1,"Text");