我有一个带有按钮的表单,该按钮设置为表单的 AcceptButton。该窗体有几个其他控件。现在,当我在其他控件上按 Enter 时,表单会因为表单上的接受按钮而关闭。取消按钮也是如此。我该如何处理。我尝试连接到表单和控件的 keypress keydown 事件。没有工作。有什么解决方法吗?
非常感谢,达特
我有一个带有按钮的表单,该按钮设置为表单的 AcceptButton。该窗体有几个其他控件。现在,当我在其他控件上按 Enter 时,表单会因为表单上的接受按钮而关闭。取消按钮也是如此。我该如何处理。我尝试连接到表单和控件的 keypress keydown 事件。没有工作。有什么解决方法吗?
非常感谢,达特
这就是AcceptButton
房产的运作方式。它指定在您按下 时自动单击的按钮<Enter>
。
如果您不想要这种行为,请不要将其设置为AcceptButton
. 没有其他理由这样做。
不完全确定您希望表单如何运行,但您可以执行以下操作以对事物进行更多控制:
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 并在将处理其 KeyDown 事件的表单上设置 KeyPreview 属性。您可以在此处检查 Enter 键并采取相应的操作。
这是表单的特征之一,即
如果按钮没有焦点如果您仍然希望在用户单击 Enter 时执行所需的代码...
设置窗体的 AcceptButton 属性以允许用户通过按 ENTER 来单击按钮,即使该按钮没有焦点也是如此。
问候。
在 VB>net 中试试这个
If CType(Me.ActiveControl, Button).Name = Button1.Name Then
End If