Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在windows窗体上,将选项卡焦点设置为按钮_C#_Winforms_Outlook_Vsto_Outlook Addin - Fatal编程技术网

C# 在windows窗体上,将选项卡焦点设置为按钮

C# 在windows窗体上,将选项卡焦点设置为按钮,c#,winforms,outlook,vsto,outlook-addin,C#,Winforms,Outlook,Vsto,Outlook Addin,我已经创建了一个Outlook加载项,在某个时候它会显示一个windows窗体,其中有四个按钮。我试图将焦点默认为第一个按钮,但是,每当我将此按钮默认为启动时的焦点按钮时,按钮周围将不会出现可视的“选定”边框 您知道如何实现这一点吗?您可以使用以下任一选项在窗体的Load事件中设置控件的焦点: this.ActiveControl=this.button1 this.button1.Select() this.Show();这个.button1.Focus() 只有在窗体的Visible属性

我已经创建了一个Outlook加载项,在某个时候它会显示一个windows窗体,其中有四个按钮。我试图将焦点默认为第一个按钮,但是,每当我将此按钮默认为启动时的焦点按钮时,按钮周围将不会出现可视的“选定”边框


您知道如何实现这一点吗?

您可以使用以下任一选项在窗体的
Load
事件中设置控件的焦点:

  • this.ActiveControl=this.button1
  • this.button1.Select()
  • this.Show();这个.button1.Focus()
只有在窗体的
Visible
属性设置为
true
后,才能在窗体的加载事件中使用
Control.Focus
方法在控件上设置焦点

选择按钮后,按钮的边框将以显示活动控件的方式绘制,但不会绘制焦点提示

作为一个快速而肮脏的解决方案,您可以向表单发送一个选项卡和一个Shift+选项卡:

SendKeys.SendWait("{TAB}");
SendKeys.SendWait("+{TAB}");
如果您有兴趣更改
按钮的标准行为,以便在代码中选择按钮或使用鼠标时查看焦点提示,则可以创建自己的按钮继承
按钮
,并覆盖其
显示焦点
以返回
焦点
值。您可以阅读更多关于它的信息:

按钮有四种边框。按钮是否聚焦以及是否为默认UI按钮的组合。如果TabIndex属性或Select()方法无法获得您喜欢的边框,那么您很可能正在查找表单的AcceptButton属性。相关?
public class MyCustomButton : Button
{
    protected override bool ShowFocusCues
    {
        get { return this.Focused; }
    }
}