Als Beispiel ein Quarat mit S = Seite und D = Diagonale
D = S * sqrt(2) und umgekert S = D/sqrt(2).
Ein Eingabefeld als TextBox für Seite und eins für Diagonale.
Mit TextChanged-Ereignis der Seite rechne ich die neue Diagonale und trage sie in TextBox für Diagonale ein. Und umgekehrt: Bei einem neuen Wert für Diagonale rechnet einen neuen Wert für Seite und trägt sie in TextBox für Seite ein.
Damit wir aber TextChanged-Ereignis für Diagonale ausgelöst. Sie rechnet wiederum aus der neuen Diagonale einen neuen Wert für Seite und trägt sie in TextBox für Seite ein.
Wenn der neue Wert für Seite nicht übereinstimmt mit dem Alten Wert (Rundungsfehler!), löst dies wiederum ein TextChanged-Ereignis für Seite und somit habe ich eine Schleife gebaut.
Beim Testen mit Double-Werten konnte ich beobachten, dass TextChanged-Ereignis für Diagonale bis zu 3 Mal ausgelöst wurde.
Der Effekt ist sicher bekannt, auch wenn ich ihn zum ersten Mal erlebe.
Wie geht man denn damit um?
Gruß
D = S * sqrt(2) und umgekert S = D/sqrt(2).
Ein Eingabefeld als TextBox für Seite und eins für Diagonale.
Mit TextChanged-Ereignis der Seite rechne ich die neue Diagonale und trage sie in TextBox für Diagonale ein. Und umgekehrt: Bei einem neuen Wert für Diagonale rechnet einen neuen Wert für Seite und trägt sie in TextBox für Seite ein.
Damit wir aber TextChanged-Ereignis für Diagonale ausgelöst. Sie rechnet wiederum aus der neuen Diagonale einen neuen Wert für Seite und trägt sie in TextBox für Seite ein.
Wenn der neue Wert für Seite nicht übereinstimmt mit dem Alten Wert (Rundungsfehler!), löst dies wiederum ein TextChanged-Ereignis für Seite und somit habe ich eine Schleife gebaut.
Beim Testen mit Double-Werten konnte ich beobachten, dass TextChanged-Ereignis für Diagonale bis zu 3 Mal ausgelöst wurde.
Der Effekt ist sicher bekannt, auch wenn ich ihn zum ersten Mal erlebe.
Wie geht man denn damit um?
Gruß