需要像用户控件中的接受按钮

时间:2013-10-22 08:31:57

标签: c# .net winforms visual-studio

我需要在Windows应用程序中Button(不是UserControl)上有一个Form来响应“Enter”点击,按钮的设置方式为{ {1}} {1}}的作品。

我无法使按钮聚焦,因为我需要通过更改标签来关注其他控件。

非常感谢任何帮助:)

3 个答案:

答案 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;
}