1

我有一个带有按钮的表单,该按钮设置为表单的 AcceptButton。该窗体有几个其他控件。现在,当我在其他控件上按 Enter 时,表单会因为表单上的接受按钮而关闭。取消按钮也是如此。我该如何处理。我尝试连接到表单和控件的 keypress keydown 事件。没有工作。有什么解决方法吗?

非常感谢,达特

4

5 回答 5

4

这就是AcceptButton房产的运作方式。它指定在您按下 时自动单击的按钮<Enter>

如果您不想要这种行为,请不要将其设置为AcceptButton. 没有其他理由这样做。

于 2010-01-22T04:38:12.370 回答
1

不完全确定您希望表单如何运行,但您可以执行以下操作以对事物进行更多控制:

    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);
    }
于 2010-01-22T04:51:17.180 回答
1

您可以从表单中删除 AcceptButton 并在将处理其 KeyDown 事件的表单上设置 KeyPreview 属性。您可以在此处检查 Enter 键并采取相应的操作。

于 2010-01-22T04:51:27.800 回答
0

这是表单的特征之一,即

如果按钮没有焦点如果您仍然希望在用户单击 Enter 时执行所需的代码...

设置窗体的 AcceptButton 属性以允许用户通过按 ENTER 来单击按钮,即使该按钮没有焦点也是如此。

问候。

于 2010-01-22T05:48:33.160 回答
-2

在 VB>net 中试试这个

  If CType(Me.ActiveControl, Button).Name = Button1.Name Then

        End If
于 2010-01-22T09:09:03.710 回答