2012-07-16 14 views
8

Desidero che la mia applicazione acquisisca il valore di un ComboBox e quindi imposti quello scelto dall'utente o in qualche modo ottiene il valore precedentemente selezionato.Ottenere il valore precedente di ComboBox

Il problema è che all'interno del mio modulo ci sono quattro elenchi e un ComboBox (che contiene tutti i valori degli elenchi) e voglio ripopolare il valore del ComboBox indietro all'elenco da cui è stato preso e quindi rimuovere l'elemento appena selezionato da altro/stesso elenco.

risposta

16

Si desidera gestire l'evento ComboBox.Enter. Quindi salvare il SelectedItem o SelectedValue in una variabile membro. Ogni volta che vuoi, puoi riassegnare quel valore al ComboBox.

Registrati per l'evento. È possibile eseguire questa operazione in due modi:

Eseguire il progetto. Seleziona la tua casella combinata. Nella "Finestra delle proprietà", fai clic sull'icona del fulmine per mostrare tutti i suoi eventi. Quindi trova "Invio" e fai doppio clic nella casella. Genererà automaticamente la funzione di callback ("gestore di eventi") per te e la collegherà all'evento.

enter image description here

enter image description here

È possibile programatically fare la stessa cosa. Nel costruttore, collegare un gestore di eventi della firma corretta:

public partial class Form1 : Form 
{ 
    public Form1() 
    { 
     InitializeComponent(); 
     comboBox1.Enter += comboBox1_Enter; 
    } 

    private void comboBox1_Enter(object sender, EventArgs e) 
    { 
     m_cb1PrevVal = comboBox1.SelectedValue; 
    } 

    private void RestoreOldValue() 
    { 
     comboBox1.SelectedValue = m_cb1PrevVal; 
    } 
} 
+1

oh, va bene, così alla fine dovrò imparare a gestire quelli ... – smsware

+0

Manage cosa, esattamente? –

+0

eventi, mai usato davvero ... sembrano spaventosi :) – smsware

Problemi correlati