我需要在Windows应用程序中Button
(不是UserControl
)上有一个Form
来响应“Enter”点击,按钮的设置方式为{ {1}} {1}}的作品。
我无法使按钮聚焦,因为我需要通过更改标签来关注其他控件。
非常感谢任何帮助:)
答案 0 :(得分:12)
AcceptButton是Form的一个属性,不能用于UserControl。您可以简单地覆盖ProcessCmdKey,只要用户控件具有焦点,这将起作用。否则,如果您有多个可能处于活动状态的控件,则需要单独使用表单的AcceptButton或覆盖表单中的ProcessCmdKey。
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
if (keyData == Keys.Enter)
{
button.PerformClick();
return true;
}
return base.ProcessCmdKey(ref msg, keyData);
}
答案 1 :(得分:0)
如果将按钮上的“修改器”属性设置为“公共”,则可以在窗体上将该按钮用作AcceptButton。遗憾的是,您无法使用Visual Studio的属性窗口进行设计时,但您可以在代码中进行设计。
public Form1()
{
InitializeComponent();
this.AcceptButton = userControl11.button1;
}
答案 2 :(得分:0)
我知道这是一个老问题,已经回答了,但是我在某些情况下会使用它:
private void UserControl11_Load(object sender, EventArgs e)
{
this.FindForm().AcceptButton = Button1;
}