2 Stimmen

WinForm-Hintergrundfarbe ändern, aber noch benutzbar machen

Ich brauche, um eine WinForm von mir blinken, um den Benutzer zu alarmieren, und ich möchte dies zu erreichen, indem Sie die Hintergrundfarbe von der Standard zu rot, und wieder zurück jede Sekunde für 5 Sekunden ändern. Während dieser 5 Sekunden möchte ich in der Lage sein, das Formular zu verwenden, was mich auf die Idee bringt, den blinkenden Code in einen anderen Thread zu packen, ABER ich glaube, ich werde Probleme bekommen, weil der blinkende Code versuchen wird, das Formular zu ändern, das in einem anderen Thread erstellt wurde.

Wie kann ich mein Ziel, eine blinkende WinForm zu erstellen, am besten erreichen?

Danke!

4voto

SLaks Punkte 832502

Sie müssen eine System.Windows.Forms.Timer .

1voto

Kernow Steve Punkte 196

Wie wäre es, einen Timer zu verwenden und die Hintergrundfarbe des Formulars im Event-Handler zu ändern?

1voto

Pekkasso Punkte 419

Wenn Sie die WinForm von einem anderen Thread aus ändern wollen, können Sie die Methode .Invoke() des Formulars verwenden. Diese Methode ermöglicht es einem anderen Thread, die Ausführung einer Methode im Formular-Thread aufzurufen.

Siehe Dokumentation für Beispiele: MSDN: Control.Invoke

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X