当按钮被选中(通过选项卡或单击它们)时,如何删除出现在按钮上的虚线?
这个问题是为了winforms
- 任何帮助表示赞赏。
编辑:我为重复的问题道歉。我确实搜索了答案,但我不知道这个问题是由于按钮的“焦点”造成的。结果我没有找到合适的答案。
您是否尝试过从按钮上移开焦点。
只需Focus();
在单击按钮时调用。
发生这种情况是因为您的Button
收益集中。可以将其删除,但这意味着当您的按钮的焦点Enter 事件被触发时,将焦点放在其他东西上。
private void button1_Enter(object sender, EventArgs e)
{
// give focus to something else
}
这样做的问题是您无法使用键盘来选择按钮(使用选项卡)。
此外,更正确的方法是将焦点放在最后一个具有焦点的控件上,而不是将其传递给固定的控件。
创建自定义控件添加 ShowFocusCues 并构建以使用
例子
public class button : System.Windows.Forms.Button
{
protected override bool ShowFocusCues
{
get
{
return false;
}
}
}
您可以将人员设置ShowFocusRectangle
为false
.
这里唯一真正有效而无需破解(将焦点转移到另一个控件)的答案是 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