2016-06-03 11 views
2

ich an einem Projekt arbeite, das einen viktorianischen Look verwendet, und fühlen: enter image description hereErstellen einer AcceptButton Grenze unsichtbar

Das Problem, das ich habe, ist mit dem AcceptButton (oder OK oder die Annahme des Standard) drücken. Natürlich kann ich die Schaltfläche transparent machen und die Ränder auf 0 Breite setzen. Das Problem ist, dass wenn diese bestimmte Schaltfläche (beachten Sie, wie die Schaltfläche Abbrechen dieses Problem nicht aufweist) als AcceptButton markiert ist, wird automatisch ein Rahmen um es gezogen.

Gibt es eine Eigenschaft, die ich festlegen kann, die dies überschreiben wird?

Danke!

+0

Wenn im Designer, zeigt die Schaltfläche akzeptieren. Wenn Sie die App ausführen, sollten Sie dies nicht sehen, es sei denn, diese Schaltfläche, auch die Abbrechen, hat den Fokus. Es sei denn, Sie haben Tabstopp auf false gesetzt. –

+0

Was Sie sehen, ist nicht eine Schaltfläche Grenze, sondern der Fokus indactor. Wollen Sie den Fokus wirklich vor dem Benutzer verbergen? Schlechtes ui Design, imo. Sie können es immer noch tun, indem Sie einfach den Knopf drücken. – TaW

+0

Ich sehe die Grenze sogar in der App, wenn ich diese Dialogbox anrufe. Ich habe die Maus über und die Mausunterdrückung auch deaktiviert. Ja, technisch gesehen, ist es kein gutes UI-Design, aber das ist ein Spiel und traditionell bekommt man etwas mehr Spielraum in der Spiel-UI. – zetar

Antwort

3

Subclass den Button und overide die ShowFocusCues Eigenschaft, so dass es False zurück:

public class MyButton : Button 
{ 

    protected override bool ShowFocusCues 
    { 
     get 
     { 
      return false; 
     } 
    } 
} 
+0

Ich denke, Sie haben die richtige Idee, aber ich brauche Hilfe bei der Umsetzung. Meine Schaltfläche heißt OKButton. Und das Formular ist SetScenarioSpeed. In welcher Datei würde ich diese Unterklasse einfügen? – zetar

+1

'OKButton' sollte' MyButton' erweitern. Auf diese Weise haben Sie wiederverwendbare Klassen. Natürlich sollte 'MyButton' besser heißen :) –

+0

Warum kann ich die überschreibbare Eigenschaft' ShowFocusCues' nicht sehen? – mohsen

0

Verstanden. Hier ist die Lösung:

OKButton.FlatAppearance.BorderColor = Color.FromArgb(0, 255, 255, 255); //transparent 
+0

Sie müssen auch die 'Width = 0' einstellen! – TaW

+0

Akzeptieren Sie Ihre Antwort –