| 

.NET C# Java Javascript Exception

2
Hallo,

ich habe leider keine bessere Überschrift gefunden.

Ich begegne dem "Problem" jetzt häufiger und wollte wissen ob es eine bessere Möglichkeit gibt es zu umgehen als die meine.
Kurz gesagt, bei der Initialisierung meines Codes werden Ereignisse ausgelöst die ich eigentlich erst brauche, wenn alle Klassen und Controls initialisiert und bereit für die Verwendung sind.

Zum Beispiel der aktuelle Fall:
Ich habe eine DataGridView in deren EventHandler "SelectionChanged" ich eine Methode registriert habe. Nun wird dieses Event aber auch dann ausgelöst wenn das DataGridView initialisiert oder aktualisiert wird (da ja jede Zelle aufgebaut/angesteuert wird) und der Code in der Methode wird so unnötiger weise mehrere male ausgeführt ohne einen Zweck.

Mein Ansatz zur Lösung wäre jetzt der das ich vor der Initialisierung/Aktualisierung eine bool Variable auf false setzte wenn das DataGridView noch nicht initialisiert/aktualisiert ist und danach wieder auf true. Die registrierte Methode wird dann eben erst ausgeführt, wenn die bool Variable auf true gesetzt ist.

Wenn es bessere Methoden als die mit den bool Variablen gibt, dann wäre ich euch dankbar für einen Hinweis darauf.
16.12.2012
Siggi 229 7
4 Antworten
1
Ich löse das Problem, indem ich die problematischen Events im Shown-Event des Formulars registriere. Dieses Event wird einmalig gefeuert, wenn ein Formular initialisiert ist und auf dem Bildschirm angezeigt wird. Zu diesem Zeitpunkt sind alle Controls auf dem Formular initialisiert.
17.12.2012
luedi 2,2k 1 9
0
Die meisten WinForm Controls haben ein Loaded-Event welches ausgelöst wird wenn der Initialisierungsvorgang des Controls abgeschlossen ist. In dem Handler dieses Events kannst du jetzt die Registrierung der anderen Events machen, also z.B. deines SelectionChanged Event. Dadurch werden deine Handler dieser Events erst nach Initialisierung des Hauptcontrols ausgelöst.
16.12.2012
schulz3000 390 1 6
0
Das hatte ich auch schon mal gemacht. Aber was macht man wenn es keinen Status und keinen Event gibt, der einem anzeigt dass das Control fertig zum Gebrauch ist? Gibt es für so was eine empfohlene Vorgehensweise?
16.12.2012
Siggi 229 7
0
Danke! Das ist eine gute Idee. Werde ich mal ausprobieren.
17.12.2012
Siggi 229 7

Stelle deine .net-Frage jetzt!
TOP TECHNOLOGIES CONSULTING GmbH