2016-07-21 6 views
2

Ich habe eine Outlook-Add in erstellt, die irgendwann zeigt ein Windows-Formular mit vier Schaltflächen auf ihm. Ich versuche, den Fokus auf die erste Schaltfläche zu setzen, jedoch wird der visuelle "ausgewählte" Rahmen nicht um die Schaltfläche herum angezeigt, wenn ich diese Schaltfläche standardmäßig als Fokus beim Start festlege.Auf Windows-Formularen, Registerkarte Fokus auf eine Schaltfläche setzen

Irgendwelche Ideen, wie ich das erreichen könnte?

+0

Ein Knopf hat * vier * Arten von Grenzen. Die Kombination, ob die Schaltfläche fokussiert ist und ob es sich um die Standardschaltfläche für die Benutzeroberfläche handelt. Wenn die TabIndex-Eigenschaft oder die Select() -Methode nicht den gewünschten Rahmen erhält, dann suchen Sie nach der AcceptButton-Eigenschaft des Formulars. –

+0

In Verbindung stehend? [C# Winforms-Kontrollkästchen zeigt keinen Fokus an] (http://stackoverflow.com/a/38504895/123723) –

Antwort

3

Sie können eine dieser Optionen verwenden, um den Fokus auf ein Steuerelement in Load Ereignis des Formulars zu setzen:

  • this.ActiveControl = this.button1;
  • this.button1.Select();
  • this.Show(); this.button1.Focus();.

Sie können die Control.Focus Methode in dem Load-Ereignisse des Formulars nur auf einem Steuerelement den Fokus einstellen, nachdem die Visible Eigenschaft des Formulars auf true gesetzt.

Nach Auswahl der Schaltfläche wird der Rand der Schaltfläche so gezeichnet, dass er als aktives Steuerelement angezeigt wird, aber die Fokusmarkierungen werden nicht gezeichnet.

Als quick and dirty fix, können Sie eine Tab und eine Verschiebung + Tab zum Formular senden:

SendKeys.SendWait("{TAB}"); 
SendKeys.SendWait("+{TAB}"); 

Wenn Sie interessiert sind das Standardverhalten zu ändern von Button zu sehen, Fokus-Cues, wenn Sie Schaltfläche im Code oder mit der Maus wählen, können Sie Ihre eigenen Schaltfläche erben Button erstellen und überschreiben ShowFocusCues, um Focused Wert zurückzugeben. Sie können mehr darüber lesen here:

public class MyCustomButton : Button 
{ 
    protected override bool ShowFocusCues 
    { 
     get { return this.Focused; } 
    } 
} 
Verwandte Themen