我有一个 Windows 窗体,上面有一个ListView和一个TextBox。表单上还有一个名为“提交”的按钮,AcceptButton设置为 true。
现在,我的要求是,每当我加载表单并按 Enter 键时,都会触发提交按钮,这很好。但是,当我选择TextBox并在其中输入内容然后按 Enter 时,焦点应该是ListView,而不是AcceptButton
我怎样才能做到这一点?
我有一个 Windows 窗体,上面有一个ListView和一个TextBox。表单上还有一个名为“提交”的按钮,AcceptButton设置为 true。
现在,我的要求是,每当我加载表单并按 Enter 键时,都会触发提交按钮,这很好。但是,当我选择TextBox并在其中输入内容然后按 Enter 时,焦点应该是ListView,而不是AcceptButton
我怎样才能做到这一点?
您可以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);
}