VB.NET永远不会专注于任何控件

时间:2013-07-29 13:46:24

标签: vb.net vb.net-2010

我开发了一个像Windows计算器一样的简单计算器,

但与Windows计算器不同,点击任何按钮后,对该按钮的焦点仍然在特定点击按钮上。

那么如何永远不会对计算器表格上的所有按钮进行聚焦......?

我不认为在每个按钮的点击事件上写松散的焦点代码会更好......所以有更好的解决方案吗?

2 个答案:

答案 0 :(得分:1)

如果没有看到您的任何代码,我将假设您有一个显示用户按下的数字的文本框,因此您需要在用户单击按钮后将焦点设置为文本框,如下所示:

TextBox1.Focus()

注意:如果您的文本框未命名为TextBox1,请将名称更改为实际命名的文本框。

答案 1 :(得分:1)

使用从“标准”按钮派生的 NoFocusButton 类的实例,而不是标准按钮。在此类中,覆盖 ShowFocusCues 属性并始终返回false。

Form f = new Form();

// Need to add manually the buttons to your form unless you build a customcontrol
NoFocusButton b = new NoFocusButton();
b.Text = "ClickMe";
f.Controls.Add(b);
f.Show();

// Class derived by the Button control, it is identical but the
// property that control the drawing of the Focus rectangle returns FALSE
// tricking the WinForm system to avoid to draw the focus rectangle
class NoFocusButton : System.Windows.Forms.Button 
{ 
    protected override bool ShowFocusCues 
    { 
        get 
        { 
            return false; 
        } 
    } 
}

信用额转到Remove Focus Rectangle from Button