我有一个 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);
}