C#:麻烦与Form.AcceptButton
问题描述:
我有一个窗体的按钮被设置为窗体的AcceptButton。该表单还有其他几个控件。现在,当我在其他控件上按Enter时,由于表单上的接受按钮,表单会被关闭。 CancelButton也一样。我该如何处理。我尝试连接到表单和控件的按键keydown事件。没有用。任何解决此问题的方法?C#:麻烦与Form.AcceptButton
由于一吨, Datte
答
不完全知道你如何指望你的表单功能,但你可以不喜欢下面有过的东西多一点控制:
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
if (keyData == Keys.Enter)
{
// do something
}
if (keyData == Keys.Escape)
{
// do something else
}
return base.ProcessCmdKey(ref msg, keyData);
}
答
那该是多么AcceptButton
性质的作品。它指定当您按<Enter>
时自动点击的按钮。
如果您不想要这种行为,请不要将其设置为AcceptButton
。没有其他理由要这样做。
答
您可以从表单中删除的AcceptButton并设置将KeyPreview将处理其KeyDown事件的窗体上的属性。在那里你可以检查回车键并相应地采取行动。
答
这是形式的,即
的功能之一,如果按钮没有焦点,如果你仍然希望当用户点击输入要执行所需的代码...
设置的属性的AcceptButton即使按钮没有焦点,也可以通过按ENTER键来允许用户点击按钮。
问候。
答
尝试这一个在VB>净
If CType(Me.ActiveControl, Button).Name = Button1.Name Then
End If
该代码是不正确(除了是VB.NET代码,而不是C#代码 - 看到问题标签)。在进行类型转换时,不能将目标类型指定为字符串。另一种编写这种方法的方法是'Object.ReferenceEquals(Me.ActiveControl(),btnSubmit)'。 – stakx 2010-01-22 09:14:33
检查它?我编辑。 – 2010-01-22 09:31:47
@stakx:...说实话我更喜欢'==' – 2011-11-04 14:06:00