C# Windows Forms Disable Button wenn 2 Variablen ungleich sind?

... komplette Frage anzeigen

4 Antworten

An wie vielen Stellen im Programm ist es denn möglich, dass sich der Wert einer der zwei Variablen ändert? Der performanteste Ansatz wäre dann, nach jeder möglichen Änderung diese Abfrage einmal auszuführen, bestenfalls in eine eigene Funktion ausgelagert und nicht immer copy&pasted. Einen guten Ansatz dazu findest du in dem stackoverflow Link aus der Antwort von magicced01. Zu beachten ist auch, dass mit deiner Abfrage der Button nur disabled und nicht wieder enabled werden kann. Verwende besser ausgabe.Enabled = checksumme == inteingabe;

Antwort bewerten Vielen Dank für Deine Bewertung

Der Ausdruck

while (checksumme != inteingabe)        
{
        ausgabe.Enabled = false;
}

ist schwachsinnig.

Solange checksumme ungleich inteingabe ist, wird enabled durchgängig auf false gesetzt.

Einen Link hast du bereits bekommen.

Ich hoffe, ich konnte dir helfen; wenn du noch Fragen hast, kommentiere einfach.

LG Willibergi

Antwort bewerten Vielen Dank für Deine Bewertung
Muss ich dazu ein Event verwenden? wenn ja welches und wie?

Ja, das ist der korrekte Ansatz! :-)

Insofern du Visual Studio verwendest, kannst du in den Eigenschaften des Objektes, also des Eingabefeldes, indem du oben auf so ein Blitz-Symbol klickst, alle möglichen Events einsehen. Verwendest du ein normales Edit? Dann brauchst du höchstwahrscheinlich das Event

TextChanged

. Einen Doppelklick ausführen und den Code eintragen.

Die Speicherung von

inteingabe

 erübrigt sich dann übrigens, du kannst einfach in der

OnTextChanged

-Methode eintragen:

ausgabe.Enabled = (checksumme == Int32.Parse(Edit1.Text));

Vorausgesetzt, checksumme ist vom Typ int und dein Edit heißt Edit1.

Immer, wenn der Text nun geändert wird, wird diese Methode aufgerufen.

Ich hoffe, ich konnte dir helfen :) Frag gerne nochmal! :-)

MfG,
KnorxThieus (♂)

Antwort bewerten Vielen Dank für Deine Bewertung

Was möchtest Du wissen?