c#从DoubleClick事件中调用KeyDown事件

时间:2017-10-11 04:38:16

标签: c#

我在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事件。它是什么?有什么帮助吗?

2 个答案:

答案 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 ,然后从世界上任何地方调用它。