9

当按钮被选中(通过选项卡或单击它们)时,如何删除出现在按钮上的虚线?

这个问题是为了winforms- 任何帮助表示赞赏。

在此处输入图像描述

编辑:我为重复的问题道歉。我确实搜索了答案,但我不知道这个问题是由于按钮的“焦点”造成的。结果我没有找到合适的答案。

4

6 回答 6

1

您是否尝试过从按钮上移开焦点。

只需Focus();在单击按钮时调用。

于 2013-03-28T13:49:24.650 回答
1

发生这种情况是因为您的Button收益集中。可以将其删除,但这意味着当您的按钮的焦点Enter 事件被触发时,将焦点放在其他东西上。

private void button1_Enter(object sender, EventArgs e)
{
    // give focus to something else
}

这样做的问题是您无法使用键盘来选择按钮(使用选项卡)。

此外,更正确的方法是将焦点放在最后一个具有焦点的控件上,而不是将其传递给固定的控件。

于 2013-03-28T13:52:45.380 回答
1

创建自定义控件添加 ShowFocusCues 并构建以使用

例子

public class button : System.Windows.Forms.Button
    {
        protected override bool ShowFocusCues
        {
            get
            {
                return false;
            }
        }
     }
于 2018-11-07T06:55:16.640 回答
0

查找按钮边框设置。

 如果我在  部分中设置BorderSize为 ,我没有得到这个边框 0FlatAppearance

标签c#winforms上的删除按钮边框

于 2013-03-28T13:31:43.757 回答
0

您可以将人员设置ShowFocusRectanglefalse.

于 2019-06-21T08:30:20.423 回答
0

这里唯一真正有效而无需破解(将焦点转移到另一个控件)的答案是 Wongsathon Tuntanakan 的答案。

我参考了他的回答,另外,我已将他的代码转换为 VB:

Public Class YourButtonClass
    Inherits System.Windows.Forms.Button

    Protected Overrides ReadOnly Property ShowFocusCues As Boolean
        Get
            Return False
        End Get
    End Property
End Class
于 2020-06-28T16:58:32.293 回答