Ich habe ComboBox-Steuerelement (WinForm-Projekt).
Wenn ich DataSource an das ComboBox-Steuerelement binde, wird das Ereignis combobox_selectedindexxchange ausgelöst.
Haben Sie eine Idee, wie Sie das Ereignis selectedindexchange verhindern können, wenn die DataSource gebunden ist?
Entfernen Sie den Handler für das SelectedIndex_Changed-Ereignis, binden Sie Ihre Daten und fügen Sie den Handler dann zurück. Es folgt ein einfaches Beispiel, wie dies in einer Methode durchgeführt werden kann:
%Vor%Ich weiß, das ist ein alter Post und es hat eine akzeptierte Antwort, aber ich denke, wir können SelectionChangeCommitted Event als eine Lösung, um das Auslösen von Ereignissen während einer Datenbank zu vermeiden.
Das SelectionChangeCommitted-Ereignis wird nur ausgelöst, wenn die Benutzer die Auswahl in der Combobox ändern.
Es gibt eine ähnliche Frage auf SO und diese Antwort wird von @arbiter zur Verfügung gestellt.
Verwenden Sie SelectionChangeCommitted
Event anstelle von 'SelectedIndexChanged'
SelectionChangeCommitted
wird nur ausgelöst, wenn der Benutzer die Option ändert Kombinationsfeldauswahl Verwenden Sie nichtSelectedIndexChanged
oderSelectedValueChanged
um Benutzeränderungen zu erfassen, da diese Ereignisse sind Wird auch ausgelöst, wenn die Auswahl programmgesteuert geändert wird.
FROM Ссылка
Hier ist ein einfacher Weg. Sie können die Tag-Eigenschaft der Combobox verwenden. Es kann leer sein oder 0 Integer-Wert, wenn es leer ist oder noch nicht erfüllt ist. Sie müssen den Tag der Combobox als Anzahl der Elemente nach dem Bound festlegen. Im SelectedValueChanged-Ereignis, wenn die Tag-Eigenschaft null oder 0 ist, müssen Sie von void zurückkehren.
Hier sind einige Beispiele aus meinem Projekt.
%Vor%