2012-06-23 7 views
7

Sto riscontrando un problema con una casella combinata qui. Quello che ho fatto è stato creato una casella combinata, aggiunto articoli usando comboBox1.Items.Add("Something");. Ora ho creato una casella di testo e ciò di cui ho bisogno è quando seleziono qualcosa dalla casella combinata, la casella di testo cambia in base all'elemento selezionato nella casella combinata. Quello che ho pensato che sarebbe fare èCasella combinata se istruzione

if(comboBox1.SelectedItem.ToString() == "Something") 
{ 
    textBox1.Text = "Something"; 
} 

Ma non funziona per qualche ragione, ho provato entrambi senza ToString() e ancora non sta funzionando.

+1

è questo WPF, WinForm, ASP.NET ?? taggalo correttamente – Damith

+2

Qual è il valore della chiamata a .ToString? –

risposta

3

Prova con: comboBox1.SelectedText

if(comboBox1.SelectedText == "Something") 
{ 
     textBox1.Text = "Something"; 
} 
+0

Sì. Per chiarire, SelectedItem è un elemento, non un testo. –

1

inserire il codice nel caso in comboBox1_SelectedIndexChanged

if(comboBox1.SelectedItem.Value.ToString() == "Something") 
{ 
    textBox1.Text = "Something"; 
} 
else 
{ 
    textBox1.Text = ""; 
} 

o una versione consice

textBox1.Text = 
comboBox1.SelectedItem.Value.ToString() == "Something" ? "Something" :""; 
+0

Grazie per tutti gli aiuti persone – user1476523

+0

@ user1476523: Quale risposta ha funzionato per te? –

0

provare questo

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) 
     { 
      if (comboBox1.SelectedItem.ToString() == "Something") 
      { 
       textBox1.Text = "Something"; 
      } 
     } 
+0

provare questo: private void comboBox1_SelectedIndexChanged (object sender, EventArgs e) { se (comboBox1.Text == "qualcosa") { textBox1.Text = "Something"; } } – KF2

+0

Ho usato lo stesso codice di prima ma sotto ComboBox SelectedIndexChange e ha funzionato, stavo scrivendo sotto textBox1_Click evvent handler – user1476523

1

Fare doppio clic sulla casella combinata per generare automaticamente l'evento (SelectedIndexChanged). inserisci il tuo codice all'interno dell'evento generato. Quando si modifica il valore selezionato della casella combinata, è possibile visualizzare di conseguenza il valore della casella di testo.

se avete bisogno di mostrare combobox valore selezionato nella casella di testo, si può mettere sotto codice all'interno di evento generato

textBox1.Text = comboBox1.SelectedItem.ToString(); 
+0

se si aggiunge una stringa come elemento, funziona correttamente, selectedItem è una stringa dal momento che OP aggiunge 'comboBox1 .Items.Add ("Qualcosa"); ' – Damith

+0

Sì, mi dispiace, ho sbagliato. –

1

Oh trovato il problema. Stavo inserendo il codice nella sezione sbagliata (nella sezione textBOx_click): P

0

In base alla tua domanda suppongo che qualunque sia lo selectedItem desideri visualizzarlo sullo TextBox. Quindi, perché non si usa questo:

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    textBox1.Text = comboBox1.SelectedText.ToString(); 
} 
0
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     if (comboBox1.SelectedItem.ToString() == "M.Naveed") 
     { 
      textBox1.Text = textBox1.Text + ("Networking"); 
      textBox2.Text = textBox2.Text + ("Networking"); 
      textBox1.Text = textBox1.Text + ("mobile"); 
      textBox2.Text = textBox2.Text + ("mobile"); 
      ListViewItem li = new ListViewItem("Networking"); 
      li.SubItems.Add("mobile"); 
      listView1.Items.Add(li); 


     } 
     else if (comboBox1.SelectedItem.ToString() == "Zeeshan") 
     { 
      textBox1.Text = textBox1.Text + ("Networking"); 
      textBox2.Text = textBox2.Text + ("Networking"); 
      textBox1.Text = textBox1.Text + ("Jave"); 
      textBox2.Text = textBox2.Text + ("Jave"); 
      ListViewItem li = new ListViewItem("Networking"); 
      li.SubItems.Add("Jave"); 
      listView1.Items.Add(li); 

     } 
     else if (comboBox1.SelectedItem.ToString() == "Shamsher") 
     { 
      textBox1.Text = textBox1.Text + ("Networking"); textBox1.Text = " "; 
      textBox2.Text = textBox2.Text + ("Networking"); 
      textBox1.Text = textBox1.Text + ("Web"); 
      textBox2.Text = textBox2.Text + ("Web"); 
      ListViewItem li = new ListViewItem("Networking"); 
      li.SubItems.Add("Web"); 
      listView1.Items.Add(li); 



     } 

     else if (comboBox1.SelectedItem.ToString() == "Mudasir") 
     { 
      textBox1.Text = textBox1.Text + ("Networking"); 
      textBox2.Text = textBox2.Text + ("Networking"); 
      textBox1.Text = textBox1.Text + ("Team Fundation"); 
      textBox2.Text = textBox2.Text + ("Team Fundation"); 
      ListViewItem li = new ListViewItem("Networking"); 
      li.SubItems.Add("Team Funadation"); 
      listView1.Items.Add(li); 


     } 


     } 


    private void textBox1_TextChanged(object sender, EventArgs e) 
    { 


    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     comboBox1.Items.Add("Someting"); 

     comboBox1.Items.Add("Mcs"); 
    } 

    private void button2_Click(object sender, EventArgs e) 
    { 
    } 

    private void Form1_Load(object sender, EventArgs e) 
    { 
     comboBox1.Items.Add("M.Naveed"); 
     comboBox1.Items.Add ("Mudasir"); 
     comboBox1.Items.Add ("Zeeshan"); 
     comboBox1.Items.Add("Shamsher"); 



    } 
    } 
} 
0

Opzione 1:

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    if (comboBox2.SelectedItem.ToString() == "Dr") 
    { 
     MessageBox.Show("its dr"); 
    } 
    else 
    { 
     MessageBox.Show("its cr"); 
    } 
} 

Opzione 2:

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    if (comboBox2.Text == "Dr") 
    { 
     MessageBox.Show("its dr"); 
    } 
    else 
    { 
     MessageBox.Show("its cr"); 
    } 
} 
0

Prova questa, nel vostro InitializeComponent() aggiungere questo

private void InitializeComponent() 
{ 
// 
// combobox 
// 
this.combobox.SelectedIndexChanged += new System.EventHandler(this.changed); 
} 

poi nel metodo principale, creare questo metodo

private void changed(object sender, EventArgs e) 
{ 
if(this.combobox.Text == "Something") 
Textbox1.Text = "Something"; 
}