如何在按钮单击事件中触发按键按下事件?

3
private void textBoxColor_KeyDown(object sender, KeyEventArgs e) 
{ 
//do something 
} 
private void btnSaveSet_Click(object sender, EventArgs e) 
{ 
//how can i invoke the KeyDown event 
}

在我的测试 WinForm 中,我有一个名为 textBoxColor 的 TextBox 和一个名为 btnSaveSet 的 Button。我向 textBox 添加了 KeyDown 事件,向 Button 添加了 Click 事件。

为什么不只写一个方法,然后在两个事件处理程序中调用它呢? - Joe Farrell
2个回答

6

通常情况下,不应在其他事件处理程序中尝试调用事件处理程序。如果您想共享一个方法,则应将其放在另一个方法中,并从每个事件中调用该方法。

例如:

private void textBoxColor_KeyDown(object sender, KeyEventArgs e) 
{ 
    SomeMethod();
} 

private void btnSaveSet_Click(object sender, EventArgs e) 
{ 
    SomeMethod();
}

private void SomeMethod()
{
    // Put your shared event code here.
}

如果您希望的话,您也可以将事件参数作为参数添加到SomeMethod中来传递。


1
非常简单,从 btnSaveSet_Click 调用方法 textBoxColor_KeyDown
private void textBoxColor_KeyDown(object sender, KeyEventArgs e) 
{ 
//do something 
} 
private void btnSaveSet_Click(object sender, EventArgs e) 
{ 
    textBoxColor_KeyDown(sender,null);
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接