C# 使用(F3,F6)等功能键从其父窗体调用UserControl的按钮单击事件

C# 使用(F3,F6)等功能键从其父窗体调用UserControl的按钮单击事件,c#,C#,用户控件(Windows用户控件)中的代码 我有一个按钮,当点击按钮时,一些逻辑就会启动 下面是按钮事件 private void btnCancel_Click(object sender, EventArgs e) { // Some Logic } 我有主窗体(Windows窗体) 我正在主Winform的面板中添加上述用户控件。 在这里,我想使用一些功能键(如F3、F4)调用用户控件btnCancel\u Click事件 这对我来说是一件非常新鲜的事情。请在这方面帮助我

用户控件(Windows用户控件)中的代码

我有一个按钮,当点击按钮时,一些逻辑就会启动

下面是按钮事件

 private void btnCancel_Click(object sender, EventArgs e)
 {
     // Some Logic
 }
我有主窗体(Windows窗体)

我正在主Winform的面板中添加上述用户控件。
在这里,我想使用一些功能键(如F3、F4)调用用户控件
btnCancel\u Click
事件

这对我来说是一件非常新鲜的事情。请在这方面帮助我

谢谢。
Krishna

将父窗体的
KeyPreview
属性设置为true,然后在父窗体的
KeyDown
事件中,查找
if(e.KeyCode==Keys.F3)
,然后为用户控件编写一个公共方法,该方法触发
btnCancel\u单击。您可以从父窗体访问它

父窗体:

private void Form1_KeyDown(object sender, KeyEventArgs e)
{
    if (e.KeyCode == Keys.F3)
    {
        MyUserControl.FireButtonEvent();
    }
}
用户控制:

public void FireButtonEvent()
{
  this.btnCancel_Click(null, EventArgs.Empty);
}

创建一个
KeyEvent
方法。例如:

private void KeyDown(Object sender, KeyEventArgs e)
{
    string sKey = e.KeyValue.ToString();
    if (sKey==112) {//SomeCode;} // F1
}
在设计器代码中将该方法链接到主窗体上的按键事件:

this.KeyDown+=new System.Windows.Forms.KeyEventHandler(this.KeyDown)

在网上查找要激活的按钮的键值, F1到F24是值112到135