gpt4 book ai didi

.net - 按钮问题(.Net 2008,Framework 3.5)

转载 作者:行者123 更新时间:2023-12-01 23:15:31 24 4
gpt4 key购买 nike

当一个按钮通过按 Tab 键获得焦点时,一个矩形出现在它。即使按钮的 TabStop 属性设置为 false,当用鼠标点击按钮出现矩形。是否有可能阻止矩形出现?请帮忙。问候。

最佳答案

出现在按钮上的矩形称为“焦点矩形”。它指示窗体上的哪个控件当前具有输入焦点。

对您遇到的问题的解释是,即使按钮不是制表位,当用鼠标单击它时它仍然选中,因此焦点矩形仍然出现。 TabStop 属性只控制控件是否可以使用 Tab 键获得焦点,而不是它是否可以被用户选择。

焦点矩形可用于向用户指示哪个控件具有焦点。在选中按钮的情况下按 EnterSpace 键会导致按钮被“按下”。如果没有焦点矩形,键盘用户可能很难在您的应用程序中导航。

如果您只是想完全阻止按钮获得焦点(从而阻止焦点矩形出现),您可以将其 Enabled 属性设置为 False。当然,这也会阻止用户点击按钮。

如果您希望按钮保持可点击状态但在它具有焦点时阻止绘制矩形(我可能会警告您以牺牲程序的可用性为代价),您将必须创建自己的自定义控件,该控件派生自现有的 按钮控件。在您的控件中,您可以覆盖 ShowFocusCues property (在 Button 控件上默认为 True)返回 False。例如:

public class NoFocusButton : Button
{
protected override bool ShowFocusCues
{
get
{
return false;
}
}
}

或者,您可以覆盖派生按钮控件中的 OnPaint 事件。这将允许您完全控制按钮的绘制方式(包括删除焦点矩形),这带来的风险与返回一样多。参见 this answer to another question有关此路线的更多信息。

关于.net - 按钮问题(.Net 2008,Framework 3.5),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4172903/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com