【问题标题】:C# How to escape form's Accept Button from getting triggeredC#如何避免表单的接受按钮被触发
【发布时间】:2018-04-17 06:16:36
【问题描述】:

我有一个 Windows 窗体,上面有一个 ListView 和一个 TextBox。表单上还有一个名为“提交”的按钮,AcceptButton 设置为 true。

现在,我的要求是,每当我加载表单并按 Enter 键时,都会触发提交按钮,这很好。但是,当我选择 TextBox 并在其中输入内容然后按 Enter 键时,焦点应该来到 ListView,而不是 AcceptButton

我怎样才能做到这一点?

【问题讨论】:

  • 您可以根据焦点控件更改Accept按钮或自己处理ProcessDialogKey

标签: c# winforms keypress acceptbutton


【解决方案1】:

您可以根据活动控件设置AcceptButton,或者作为更好的选择,您自己处理ProcessDialogKey。这是包含the logic for AcceptButton 的方法。

所以你可以覆盖它,例如:

protected override bool ProcessDialogKey(Keys keyData)
{
    if (keyData == Keys.Enter)
    {
        if (this.ActiveControl == this.textBox1)
        {
            MessageBox.Show("Enter on TextBox1 handled.");
            return true; //Prevent further processing
        }
    }
    return base.ProcessDialogKey(keyData);
}

【讨论】:

    猜你喜欢
    • 2021-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-22
    • 2012-07-25
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    相关资源
    最近更新 更多