PDA

View Full Version : سوال: انتخاب از ComboBox



m.batimar
شنبه 29 تیر 1392, 02:12 صبح
سلام دوستان محترم یک سوال داشتم
تو پروژم یک کمو باکس دارم که با اعداد پر شده است میخوام مثلا اگه عدد دوازده رو کلیک کرد فرم 12 که مربوط بهشه باز بشه لطفا کمکم کنین
ممنون

esafb52
شنبه 29 تیر 1392, 02:18 صبح
سلام تو رویداد select index اش کدت رو بنویس

m.batimar
شنبه 29 تیر 1392, 02:20 صبح
خب من اینو نوشتم ولی ارور میده

switch (comboBoxEx1.SelectedIndex)
{
case 0:
if (comboBoxEx1.SelectedIndex ="1")
{
Form1 a = new Form1();
a.Show();
}
break;
احتمالا از اون 1 باشه که نوشتم

esafb52
شنبه 29 تیر 1392, 02:30 صبح
کد رو تو رویداد سلکت ایندکس بنویس تا عمل کنه ضمنا سویچ و if رو بهم فکر نکنم بکار ببرن
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
if (comboBox1.SelectedIndex==0)
{
Form2 frm2= new Form2();
frm2.ShowDialog();

}
else if (comboBox1.SelectedIndex == 1)
{
Form3 frm2 = new Form3();
frm3.ShowDialog();
}
else if (comboBox1.SelectedIndex == 2)
{

}
else
{

}
}
}

esafb52
شنبه 29 تیر 1392, 02:42 صبح
اگه حالت هات زیادن از سویچ استفاده کن اونم اینطوری
switch (comboBox1.SelectedIndex)
{
case 0:
comboBox1.SelectedIndex = 0;
MessageBox.Show("Test 0000000");
break;
case 1:
comboBox1.SelectedIndex = 1;
MessageBox.Show("Test 11111111111");
break;
case 2:
comboBox1.SelectedIndex = 2;
MessageBox.Show("Test 2222222");
break;
default:
MessageBox.Show("Test");
break;
}

m.batimar
شنبه 29 تیر 1392, 09:25 صبح
دوست عزیز من این کد رو نوشتم ولی ارور میده

case 0:
comboBoxEx1.SelectedIndex = 13;
amval_gheyrmasrafi a = new amval_gheyrmasrafi();
a.Show();


ارورشم هست
InvalidArgument=Value of '13' is not valid for 'SelectedIndex'.
Parameter name: SelectedIndex

MiniMicro
شنبه 29 تیر 1392, 10:10 صبح
سلام دوستان محترم یک سوال داشتم
تو پروژم یک کمو باکس دارم که با اعداد پر شده است میخوام مثلا اگه عدد دوازده رو کلیک کرد فرم 12 که مربوط بهشه باز بشه لطفا کمکم کنین
ممنون

سلام دوست عزیز از این کد استفاده کنید....

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
int x = comboBox1.SelectedIndex + 1;
switch (x)
{
case 1:
Form1 frm1 = new Form1();
frm1.Show();
break;
case 2:
Form2 frm2 = new Form2();
frm2.Show();
break;
case 3:
Form3 frm3 = new Form3();
frm3.Show();
break;
default:
//your code
break;
}
}

sohil_ww
شنبه 29 تیر 1392, 10:30 صبح
همه این راه هایی که دوستان گفتن درست ولی به نظر من اول در باره دستور Switch مطالعه کن (که متوجه بشی کداش چی کار می کنن)

Mahmoud.Afrad
شنبه 29 تیر 1392, 10:32 صبح
اگه حالت هات زیادن از سویچ استفاده کن اونم اینطوری
switch (comboBox1.SelectedIndex)
{
case 0:
comboBox1.SelectedIndex = 0;
MessageBox.Show("Test 0000000");
break;
case 1:
comboBox1.SelectedIndex = 1;
MessageBox.Show("Test 11111111111");
break;
case 2:
comboBox1.SelectedIndex = 2;
MessageBox.Show("Test 2222222");
break;
default:
MessageBox.Show("Test");
break;
}
در caseها چرا به SelectedIndex مقدار دادید؟!!

m.batimar
شنبه 29 تیر 1392, 12:23 عصر
در caseها چرا به SelectedIndex مقدار دادید؟!!

این مقدارهایی که نوشته 1 و 2 و ... اعدادیه که تو کموباکس هاست که وقتی انتخاب میشه فرم مربوطش باز میشه

m.batimar
شنبه 29 تیر 1392, 12:28 عصر
دوستان عزیز هیچ کدوم از اینا جواب نمیده مثلا من اولین ایتم کموباکسم 6 هست ولی وقتی روش کلیک میکنم فرم 6 باز نمیشه ....یعنی این کدا خود عدد رو نمیخونه میره مثلا ششمین ایتمو فرمشو نشون میده

MiniMicro
شنبه 29 تیر 1392, 12:36 عصر
دوستان عزیز هیچ کدوم از اینا جواب نمیده مثلا من اولین ایتم کموباکسم 6 هست ولی وقتی روش کلیک میکنم فرم 6 باز نمیشه ....

خوب دوست عزیز شما باید از دستور Switch استفاده کنی وقتی که یکی از آیتم های کمبو باکس انتخاب شد اندیس متناظرش رو تشخیص بده و از فرم مورد نظر یه نمونه بسازه و نمایش بده به پاسخ های قبلی بیشتر دقت کنید...
خوب حالا که اولین مورد در کومبو باکس شما فرم ششم هست یه متغییر تعریف کنید و هر دفعه که آیتمی انتخاب شد + 6 بکنید مشکلتون حل میشه...

Mahmoud.Afrad
شنبه 29 تیر 1392, 12:53 عصر
این مقدارهایی که نوشته 1 و 2 و ... اعدادیه که تو کموباکس هاست که وقتی انتخاب میشه فرم مربوطش باز میشه
میدونم چیه. منظورم خطهایی شبیه comboBox1.SelectedIndex = 0; هست. این خطوط اضافه است.

از selecteditem استفاده کنید:

int item = Convert.ToInt32(comboBox1.SelectedItem);

switch (item)
{
case 1:
MessageBox.Show("1");
break;
case 2:
MessageBox.Show("2");
break;
case 3:
MessageBox.Show("3");
break;
}