Hallo 🙂
Problem:
Ich ändere die Forecolor eines Buttons z.b. auf Color.Red
Beim Enter des Buttons wird nun auch ein roter Rahmen um den Button angezeigt, bzw wenn dieser den Focus hat.
Das scheint ".NET-Standard" zu sein, aus Visual FoxPro bin ich es anders gewohnt und finde dies sieht nun irgendwie sehr unglücklich aus 😕
Gibt es eine Möglichkeit diesen Rahmen weg zu bekommen?
Oder eine Begründung, warum man diesen Rahmen eingeführt hat?
Danke.
Mein Blog: http://www.frickelblog.de
Hallo Sclot,
warum man diesen Rahmen eingeführt hat?
Damit man sieht wenn ein Button aktiv ist. Man kann ja mit der Tab-Taste alle Buttons durchgehen.
Es gibt verschiedene Button-Styles (Flatstyle), vielleicht passt da ein anderer besser.
Wenn Du bei dem Button Tabstop deaktivierst und beim Anklicken den Focus wieder woanders hin setzt sieht der Anwender den Rahmen recht selten.
Grüße Bernd
Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3
Hallo Sclot,
es gibt zwei Rahmen:
Den außenrum, der angibt, welcher Button der Default-Button ist, also der, der bei Enter "gedrückt" wird.
Den innenrum, der angibt, welcher Button den Focus hat, also der, der bei Space "gedrückt" wird.
Beides sind also Hinweise für den Benutzer, die die Bedienung mir der Tastatur erleichtern. Du solltest diese Hilfen nicht nur aus ästhetischen Gründen abschalten, weil das die Bedienung der Anwendung unnötig erschwert.
Wenn triftigere Gründe gibt: Control.ShowFocusCues.
herbivore
Hallo miteinander,
ich klinke mich jetzt mal in diesen Thread ein, weil ich ein ähnliches Problem habe.
Ich habe eine Klasse CustomButton erstellt und diese von Button abgeleitet
public class CustomButton : System.Windows.Forms.Button {
protected override bool ShowFocusCues {
get {
return false;
}
}
}
Leider wird bei mir immernoch nach einem Klick dieser Rahmen angezeigt. Der entsprechende Button hat folgende Eigenschaften:
this.button1.Location = new System.Drawing.Point(67, 115);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(75, 23);
this.button1.TabIndex = 0;
this.button1.TabStop = false;
this.button1.Text = "button1";
this.button1.UseVisualStyleBackColor = true;
Hintergrund ist, dass es sich bei der Anwendung um eine TouchScreen Anwendung handelt. Da möchte ich nach einem Klick auf den Button keinen Focus Rahmen.
Hat einer von euch eine Idee?
Danke euch im Voraus und schonmal ein schönes Wochenende
Grüße Schlonzo
evtl. ein ganz doofer Fehler:
this.button1.Location = new System.Drawing.Point(67, 115);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(75, 23);
this.button1.TabIndex = 0;
Wenn das Designer-Code ist, siehtes so aus, als ob du gar keinen CustomButton verwendest, der Designer würdeja das Teil erstmal "customButton1
" benennen.
Wenns dein Code ist, weißichauch nicht, worans liegt, (fände den Button aber schlecht benamt).
Der frühe Apfel fängt den Wurm.
Danke, aber neeeee das isses leider nicht. button1 ist eine Instanz von CustomButton
Also nach weiterer Recherche hab ich für mich nun einen Weg gefunden. Auch wenn ich nicht weiß, warum die Variante die scheinbar bei allen anderen funktioniert, bei mir nicht funktioniert.
Ich hab es jetzt mit folgendem Code im Konstruktor gelöst:
this.SetStyle(System.Windows.Forms.ControlStyles.Selectable, false);
Grüße
Schlonzo