2016-06-08 17 views
0

Die Unterschiede zwischen den aktivierten und deaktivierten Steuerelementen sind so gering, dass ich den Unterschied beim erstmaligen Erstellen nicht erkennen konnte.Gibt es eine Möglichkeit, die Standardfarbe für alle deaktivierten Elemente in einem .NET-Windows-Anwendungsformular zu ändern?

Wenn ich die ForeColor-Eigenschaft für Schaltfläche, Beschriftung, Texttitel usw. anzeigen, werden sie als SystemColor.ControlText angezeigt, ob sie deaktiviert oder aktiviert sind, aber sie sind definitiv anders.

Also frage ich mich, wie funktioniert der "Behinderte" Effekt und was könnte falsch sein mit meiner Form, die es so geringfügig macht einen Unterschied.

Ich versuchte, die ForeColor auf etwas anderes, auch Red Einstellung, aber wenn ich nicht kontrollieren ermöglichen, es zeigt nicht

So gibt es eine Eigenschaft I fehlt bin?

Gibt es eine Standardeigenschaft für dieses auf der Formularebene?

Antwort

1

Es gibt keine Eigenschaft, die Ihnen fehlt, oder eine Standardformulareigenschaft dafür. Ich denke, Sie müssen benutzerdefinierte Steuerelemente für dieses Verhalten schreiben und das OnPaint-Ereignis überschreiben. Spaß, aber ziemlich viel Arbeit.

Die RichTextBox könnte eine Problemumgehung für TextBoxen sein. Ein einfacher Fall zum Erfassen des EnabledChanged-Ereignisses.

private void richTextBox1_EnabledChanged(object sender, EventArgs e) 
{ 
     richTextBox1.ForeColor = richTextBox1.Enabled ? Color.Black : Color.Red; 
} 
+0

Danke für die Beantwortung, ich werde sehen, wie das geht – mreinsmith