Textfarbe der deaktivierten Steuerung - wie man sie ändert

8

Bei der Erstellung meines tollen Matching-Spiels;) habe ich ein Problem gefunden, das völlig außer Reichweite ist.

Wenn der Spieler zwei Etiketten mit Symbolen auswählt, möchte ich alle anderen Etiketten für 4 Sekunden sperren.

Aber wenn ich das tue, ändert sich die Vordergrundfarbe aller Beschriftungen zu Grau und die Symbole sind sichtbar. Meine Frage ist - Gibt es eine Methode, um die ForeColor einer deaktivierten Bezeichnung in Visual c # zu ändern?

Das Projekt ist eine WinForm-Anwendung.

Im Moment stelle ich die Farbe eines Etiketts wie folgt im Code ein:

%Vor%

Wenn der Benutzer auf das Label klickt, ändere ich es zu:

%Vor%     
Mqati 14.05.2011, 14:59
quelle

2 Antworten

7

Weg einfacher als das Ändern der Art und Weise, wie Windows deaktivierte Steuerelemente zeichnet, legen Sie einfach ein Flag fest, wenn% ce_de% effektiv deaktiviert werden soll, und überprüfen dann den Wert dieses Flags in Ihrer Label Event-Handler-Methode, bevor Sie die gewünschte Aktion ausführen. Wenn das Steuerelement "deaktiviert" wurde, führen Sie keine Aktion aus.

In etwa so:

%Vor%

Beachten Sie auch, dass Sie immer Click anstelle von SystemColors verwenden sollten.
Wenn Sie bestimmte Farbwerte fest codieren, treten Konflikte häufig auf, wenn der Benutzer sein Standard-Windows-Design anpasst. Raymond Chen geht in einem Artikel in seinem Blog auf die Gefahren ein.

    
Cody Gray 14.05.2011, 15:17
quelle
8

Erstelle einfach ein eigenes Label mit einem neu definierten Paint-Event:

%Vor%

Seien Sie vorsichtig mit Textformat-Flags während der Textzeichnung.

    
Allender 14.05.2011 15:20
quelle