c# - 在 Windows 窗体上,将选项卡焦点设置为按钮

标签 c# winforms outlook vsto outlook-addin

我创建了一个 Outlook 插件,其中有时会显示一个带有四个按钮的窗口窗体。我试图将焦点默认设置为第一个按钮,但是每当我将此按钮默认为开始时的焦点按钮时,视觉“选定”边框将不会出现在按钮周围。

有什么想法可以实现吗?

最佳答案

您可以使用这些选项中的任何一个来将焦点设置在窗体的 Load 事件中的控件上:

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

只有在将窗体的Visible属性设置为

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

作为一个快速而肮脏的修复,你可以发送一个 Tab,然后一个 Shift + Tab 到你的表格:

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

如果您有兴趣更改 Button 的标准行为以在代码中选择按钮或使用鼠标时看到焦点提示,您可以创建自己的继承 Button 的按钮并覆盖其 ShowFocusCues 以返回 Focused 值。您可以阅读更多相关信息 here :

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

关于c# - 在 Windows 窗体上,将选项卡焦点设置为按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38504389/

相关文章:

c# - 在什么情况下我不应该在类中使用静态成员?

c# - 如何从sqlite sql查询中检索日期并发送到调用函数

c# - 为什么我的 ListView 不能正确显示详细信息 View ?

c# - Windows 窗体 : How to handle redrawing efficiently?

VBA异常处理失败?

vba - Outlook:如何在邮件上设置 "Categories"后刷新文件夹

c# - ValueType 的动态表达式生成问题

c# - Azure 的 Swagger 配置与 localhost 的配置不同

.net - 使用 InstallShield LE 更新现有安装

c# - 如何将 asp.net web 应用程序与 outlook 连接?