2016-05-11 5 views
1

ListBoxから何かを選択するたびにComboBoxにパラメータが表示されますが、コンボボックス内には何も表示されません。ListBoxからパラメータを選択しているときにコンボボックスが表示されないc#

これは私がこれまで持っているものである

...

private void Form1_Load(object sender, EventArgs e) 
    { 
     listBox4.Items.Add("BE"); 
     listBox4.Items.Add("MBA"); 
     listBox4.Items.Add("Pharmacy"); 
    } 

    private void listBox4_SelectedIndexChanged(object sender, EventArgs e) 
    { 

    } 

    private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     if ((string)listBox4.SelectedItem == "BE") 
     { 

      comboBox1.Items.Add("CSE"); 
      comboBox1.Items.Add("IT"); 
      comboBox1.Items.Add("ME"); 
      comboBox1.Items.Add("EX"); 
      comboBox1.Items.Add("CE"); 
     } 

     if ((string)listBox4.SelectedItem == "Pharmacy") 
     { 
      comboBox1.Items.Add("Pharmaceutical Chemistry"); 
      comboBox1.Items.Add("Pharmacology"); 
     } 

     if ((string)listBox4.SelectedItem == "MBA") 
     { 
      comboBox1.Items.Add("Retail Management"); 
      comboBox1.Items.Add("HR"); 
     } 
    } 

は、ここであなたは間違ってイベントにコードを配置したoutput

+0

'comboBox1'の選択が変更されたときにあなたが' comboBox1'アイテムを埋めているようです。上記のイベントハンドラ( 'listBox4_SelectIndexChanged')にこのコードを移動するべきでしょう。しかし、エラーがどこの '.Designer.cs'ファイルを手元に持っていないのかを言うのはちょっと難しいです。 – buygrush

答えて

1

です。

 // This is where your code belongs. 
     private void listBox4_SelectedIndexChanged(object sender, EventArgs e) 
     { 
      if ((string)listBox4.SelectedItem == "BE") 
      { 

       comboBox1.Items.Add("CSE"); 
       comboBox1.Items.Add("IT"); 
       comboBox1.Items.Add("ME"); 
       comboBox1.Items.Add("EX"); 
       comboBox1.Items.Add("CE"); 
      } 
      if ((string)listBox4.SelectedItem == "Pharmacy") 
      { 
       comboBox1.Items.Add("Pharmaceutical Chemistry"); 
       comboBox1.Items.Add("Pharmacology"); 
      } 
      if ((string)listBox4.SelectedItem == "MBA") 
      { 
       comboBox1.Items.Add("Retail Management"); 
       comboBox1.Items.Add("HR"); 
      } 
     } 

     private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) 
     { 
      // THIS WAS THE WRONG PLACE 
     } 
0
  1. それがどこから来ているかを判断する方が簡単ですので、あなたは、あなたのコントロールに意味のある名前を与える必要があります。

  2. ComboBoxにデータを入力するたびに、最初にクリアする必要があります。

  3. 最も重要なことは、ListBoxではなくComboBoxでSelectedIndexChangedをチェックしていることです。あなたがそれを動かすとどうなりますか?

private void Form1_Load(object sender, EventArgs e) 
{ 
    listBox4.Items.Add("BE"); 
    listBox4.Items.Add("MBA"); 
    listBox4.Items.Add("Pharmacy"); 
} 

private void listBox4_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    if ((string)listBox4.SelectedItem == "BE") 
    { 

     comboBox1.Items.Add("CSE"); 
     comboBox1.Items.Add("IT"); 
     comboBox1.Items.Add("ME"); 
     comboBox1.Items.Add("EX"); 
     comboBox1.Items.Add("CE"); 
    } 

    if ((string)listBox4.SelectedItem == "Pharmacy") 
    { 
     comboBox1.Items.Add("Pharmaceutical Chemistry"); 
     comboBox1.Items.Add("Pharmacology"); 
    } 

    if ((string)listBox4.SelectedItem == "MBA") 
    { 
     comboBox1.Items.Add("Retail Management"); 
     comboBox1.Items.Add("HR"); 
    } 
} 

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) 
{ 
} 
0
private void Form1_Load(object sender, EventArgs e) 
    { 
     listBox4.Items.Add("BE"); 
     listBox4.Items.Add("MBA"); 
     listBox4.Items.Add("Pharmacy"); 
    } 

    private void listBox4_SelectedIndexChanged(object sender, EventArgs e) 
    { 
comboBox1.Items.Clear(); 
if ((string)listBox4.SelectedItem == "BE") 
     { 

      comboBox1.Items.Add("CSE"); 
      comboBox1.Items.Add("IT"); 
      comboBox1.Items.Add("ME"); 
      comboBox1.Items.Add("EX"); 
      comboBox1.Items.Add("CE"); 
     } 

     if ((string)listBox4.SelectedItem == "Pharmacy") 
     { 
      comboBox1.Items.Add("Pharmaceutical Chemistry"); 
      comboBox1.Items.Add("Pharmacology"); 
     } 

     if ((string)listBox4.SelectedItem == "MBA") 
     { 
      comboBox1.Items.Add("Retail Management"); 
      comboBox1.Items.Add("HR"); 
     } 
    } 

    private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) 
    { 

    } 
+0

間違ったイベントが処理されました。イベントlistBox4_SelectedIndexChangedには関連するコードが必要です – vamsi

0

さて、あなたは更新する必要があります(古いを削除し、新しい追加)listBox4変化にcomboBox1.Itemsを:

// Please, notice "listBox4" 
    private void listBox4_SelectedIndexChanged(object sender, EventArgs e) { 
    String selected = listBox4.SelectedItem as String; 

    // we don't want blinking - too many re-draws 
    combobox1.BeginUpdate(); 

    try { 
     //DONE: do not forget to remove old items 
     combobox1.Items.Clear(); 

     if (selected == "BE") { 
     combobox1.Items.AddRange("CSE", "IT", "ME", "EX", "CE"); 
     else if (selected == "Pharmacy") { 
     combobox1.Items.AddRange("Pharmaceutical Chemistry", "Pharmacology"); 
     else if (selected == "MBA") 
     combobox1.Items.AddRange("Retail Management", "HR"); 
    finally { 
     combobox1.EndUpdate(); 
    } 
    } 

そしてcomboBox1は役に立たないと思われ、少なくとも今は

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { 
    //TODO: put here logic on comboBox1 change, e.g. on "Retail Management" selection 
} 
関連する問題