1

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

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

我怎样才能做到这一点?

4

1 回答 1

2

您可以AcceptButton根据活动控件进行设置,或者作为更好的选择,自行处理ProcessDialogKey。这是包含逻辑的方法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);
}
于 2018-04-17T06:29:15.600 回答