pri*_*one 3 .net user-interface button winforms
按Tab键聚焦按钮时,会出现一个矩形.即使按钮的TabStop属性设置为false,当用鼠标单击按钮时,也会出现矩形.是否可以阻止矩形出现?请帮忙.问候.
出现在按钮上的矩形称为"焦点矩形".它指示表单上的哪个控件当前具有输入焦点.
您遇到的问题的解释是,即使按钮不是制表位,当用鼠标单击它时它仍然会被选中,因此仍然会出现焦点矩形.该TabStop
属性仅控制控件Tab是否可以通过键获得焦点,而不是用户是否可以选择.
焦点矩形对于向用户指示哪个控件具有焦点是有用的.按下选择按钮的Enter或Space键将导致按钮被"推".如果没有焦点矩形,键盘用户可能很难导航您的应用程序.
如果您只是想阻止按钮获得焦点(从而防止出现焦点矩形),您可以将其Enabled
属性设置为False
.当然,这也会阻止用户点击按钮.
如果你想让按钮保持可点击状态,但是当它有焦点时会阻止画一个矩形(以你的程序的可用性为代价,我可能会提醒你),你必须创建自己的自定义控件,它来自现有的Button
控件.在您的控件中,您可以覆盖ShowFocusCues
属性(True
默认情况下在Button
控件上)以返回False
.例如:
public class NoFocusButton : Button
{
protected override bool ShowFocusCues
{
get
{
return false;
}
}
}
Run Code Online (Sandbox Code Playgroud)
或者,您可以OnPaint
在派生按钮控件中覆盖事件.这样您就可以完全控制按钮的绘制方式(包括移除焦点矩形),其中包含与奖励一样多的风险.有关此路线的更多信息,请参阅另一个问题的答案.