我在KeyDown事件中编写了一些代码,我希望从Double Click事件中执行。我可以将代码块作为函数包装并在两个事件中调用该函数,但我只是想用一种奇特的方法来避免创建一个新函数。这是我的两个事件的样子。
private void txtProduct_KeyDown(object sender, KeyEventArgs e)
{
if(e.KeyCode == Keys.Return)
{
//do something
}
}
private void listProduct_DoubleClick(object sender, EventArgs e)
{
txtProduct_KeyDown(txtProduct, Keys.Return);
}
为了从doubleclick事件执行//do something
块,我需要使用两个特定参数调用keydown事件。它是什么?有什么帮助吗?
答案 0 :(得分:3)
不要去那里。 始终将常用功能提取到自己的方法中。尝试花哨的东西以避免创建一个新方法只会让你长期痛苦。
private void txtProduct_KeyDown(object sender, KeyEventArgs e)
{
if(e.KeyCode == Keys.Return)
{
DoSomething();
}
}
private void listProduct_DoubleClick(object sender, EventArgs e)
{
DoSomething();
}
private void DoSomething()
{
// Do Something
}
这是无痛的,并且完全表达了你想要做的事情,即DoSomething
列表双击和返回Keydown。
答案 1 :(得分:0)
要传递KeyEventArgs
,您需要这个
txtProduct_KeyDown(txtProduct, new KeyEventArgs(Keys.Enter));
虽然这不是编码实践的最佳方式,但您应该创建一个功能,为您执行 dosomething ,然后从世界上任何地方调用它。