首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

怎么不受窗体焦点影响,保持按下enter时键触发且仅触发一个button事件

2013-11-14 
如何不受窗体焦点影响,保持按下enter时键触发且仅触发一个button事件我在做个计算器,想要按下enter键之后

如何不受窗体焦点影响,保持按下enter时键触发且仅触发一个button事件
我在做个计算器,想要按下enter键之后相当于按下=号,但是只要在计算器里用鼠标点击任何一个不是=号的button之后按enter就变成按下其他键了,该怎么解决呢?
要保持不管何时只要按下enter键则触发且仅触发button1,就是可不可以让enter不受焦点影响绑定button1的事件,或者每次按下其他键之后让焦点回到button1?
求指点,谢谢!
[解决办法]
http://msdn.microsoft.com/zh-cn/library/system.windows.forms.keyeventargs.handled.aspx
[解决办法]
这样写,没有问题的。

protected override bool ProcessDialogKey(Keys keyData)
{
    switch (keyData)
    {
        case Keys.D0: n0.PerformClick(); break;
        case Keys.D1: n1.PerformClick(); break;
        case Keys.D2: n2.PerformClick(); break;
        case Keys.D3: n3.PerformClick(); break;
        case Keys.D4: n4.PerformClick(); break;
        case Keys.D5: n5.PerformClick(); break;
        case Keys.D6: n6.PerformClick(); break;
        case Keys.D7: n7.PerformClick(); break;
        case Keys.D8: n8.PerformClick(); break;
        case Keys.D9: n9.PerformClick(); break;
        case Keys.Enter: equal.PerformClick(); break;
        case Keys.OemPeriod: npoint.PerformClick(); break;
        case Keys.Back: deleteone.PerformClick(); break;
        case Keys.Shift 
[解决办法]
 Keys.Oemplus: add.PerformClick(); break;
        case Keys.OemMinus: minus.PerformClick(); break;
        case Keys.Shift 
[解决办法]
 Keys.D8: multiply.PerformClick(); break;
        case Keys.OemQuestion: divide.PerformClick(); break;
        case Keys.Oemplus: equal.PerformClick(); break;
    }
    return false;
}

热点排行