C# 删除按钮上的虚线
选择按钮时,如何删除按钮上显示的虚线(通过选项卡或单击按钮) 此问题适用于C# 删除按钮上的虚线,c#,winforms,C#,Winforms,选择按钮时,如何删除按钮上显示的虚线(通过选项卡或单击按钮) 此问题适用于winforms——感谢您的帮助 编辑:我为重复的问题道歉。我确实在搜索答案,但我不知道这个问题是由于按钮的“焦点”造成的。因此,我没有找到合适的答案。查找按钮边框设置 如果我在FlatAppearance部分中将BorderSize设置为0,则不会获得此边框 从中,您是否尝试从按钮上移除焦点 只需调用Focus()
winforms
——感谢您的帮助
编辑:我为重复的问题道歉。我确实在搜索答案,但我不知道这个问题是由于按钮的“焦点”造成的。因此,我没有找到合适的答案。查找按钮边框设置 如果我在
FlatAppearance
部分中将BorderSize
设置为0
,则不会获得此边框
从中,您是否尝试从按钮上移除焦点
只需调用
Focus()单击按钮时进行编码。这是因为您的按钮获得焦点。可以将其移除,但这意味着当按钮的焦点被触发时,将焦点交给其他对象
private void button1_Enter(object sender, EventArgs e)
{
// give focus to something else
}
问题是您无法使用键盘来选择按钮(使用tab键)
此外,更正确的方法是将焦点赋予具有焦点的最后一个控件,而不是将固定的焦点传递给它。创建自定义控件添加ShowFocusCues并生成以供使用
范例
public class button : System.Windows.Forms.Button
{
protected override bool ShowFocusCues
{
get
{
return false;
}
}
}
您可以将ShowFocusRectangle
peoperty设置为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
为什么这个问题被投票关闭?这是一个有效的问题。当“选择”按钮时。尝试在windows窗体应用程序中进行选项卡切换,直到选中按钮为止-您将看到我所指的虚线。您要问的是一种覆盖按钮控件的默认对焦行为的方法。您基本上必须对button的WindowProcedure进行子类或重写默认处理,以便在处理windows消息WM_Painth时可以自己绘制堆栈溢出的热情有时会令人震惊…从可访问的角度来看,您不应该删除显示焦点所在位置的UI。在这种情况下,仅使用键盘如何知道焦点在哪里?windows 8不会显示轮廓。但是它对7和XP是有效的。没有名为ShowFocusRectangle
的属性。我猜您指的是DEV Express按钮。是的,我指的是DevExpress simpleButton。