将keypress作为参数发送到函数中

时间:2015-01-20 18:55:29

标签: c# keypress

我有一个组合框,如果按下“Enter”键会做一些事情。但我想手动调用此函数,但我如何发送“ENTER”键作为参数?

 private void carga_todos(object sender, KeyPressEventArgs e)
    { 
        if (e.KeyChar == (char)13)
        {
           do something
        }
我试着这样做:

carga_todos(null, ??????)

2 个答案:

答案 0 :(得分:6)

不要像这样手动调用事件。

将您的逻辑移动到一个单独的方法中,您可以随时调用该方法:

private void carga_todos(object sender, KeyPressEventArgs e)
{ 
    if (e.KeyChar == (char)Keys.Enter)
    {
       DoSomething();
    }
}

private void AnotherFunctionThatNeedsToDoSomethingToo()
{
    DoSomething();
}

private void DoSomething()
{
    // stuff to do
}

答案 1 :(得分:2)

我同意Grant Winney的观点。但是,如果您的要求是直接调用处理程序,则以下内容应该起作用:

KeyPressEventArgs kpea = new KeyPressEventArgs((char)Keys.Enter);
carga_todos(null, kpea);
祝你好运 Ĵ