2016-12-24 3 views
0

ich bevölkern eine Combobox wie folgt:Wie kann ein Combobox-Objekt deaktiviert werden?

cboMonth.DataSource = Enumerable.Range(1, 12).ToList(); 

Ich habe auch das folgende Ereignis:

private void cboMonth_SelectedValueChanged(object sender, EventArgs e) 
{ 
    //Do something... 
} 

Das Problem ist, dass, wenn ich die Datenquelle habe die Einrichtung, wird das Ereignis ausgelöst wird. Ich brauche das Ereignis nur dann, wenn der Benutzer tatsächlich einen Gegenstand auswählt.

Kann das Ereignis bei der Einstellung der Datenquelle nicht ausgelöst werden?

+0

die Handler entfernen oder benutzen Sie einfach eine Flagge um die Änderung zu ignorieren, während sie mit ihm – Plutonix

+0

Verwendung SelectedIndexChanged Ereignis –

+0

Die Unordnung [ 'SelectionChangeCommitted'] (https : //msdn.microsoft.com/en-us/library/system.windows.forms.combobox.selectionchangecommitted (v = vs.110) .aspx) Ereignis wird nur ausgelöst, wenn der Benutzer die Auswahl des Kombinationsfelds ändert. –

Antwort

1

Sie können den Handler entfernen, bevor das ausgewählte Element zu ändern:

cboMonth.SelectedItemChanged -= cboMonth_SelectedValueChanged; 
cboMonth.SelectedItem = null; 
cboMonth.SelectedItemChanged += cboMonth_SelectedValueChanged; 
Verwandte Themen