如何在不单击button的情况下实现button_click事件

时间:2019-02-10 02:35:31

标签: c#

private void btnSend_Click(object sender, EventArgs e)
{
    Dosomething();
}

private void Something(object sender, EventArgs e)
{
    btnSend_click( how to write in here?? )
}

我想在其他部分(?)中实现btnSend_Click,但是我不知道该怎么做。我想在不使用UI的情况下实现此代码。

2 个答案:

答案 0 :(得分:1)

如果您只需要从方法btnSend_Click中调用方法Something,则可以选择以下任意一种方法:

private void Something(object sender, EventArgs e)
{
    btnSend_click(this, EventArgs.Empty);
}

private void Something(object sender, EventArgs e)
{
    btnSend_click(sender, e);
}

答案 1 :(得分:1)

这全都与命名有关,即给方法起好名字。

首先,您编写完成实际工作的基础方法。

public class Someone 
{
    public void DoSomething()
    {
        Console.Beep(); //make a noise
    }
}

此时,不涉及UI,按钮,senderEventArgs

然后

单击按钮时调用此方法。

private void btnSend_Click(object sender, EventArgs e)
{
    new Someone().DoSomething();
}

从其他任何地方调用此方法。

class AnotherOne 
{
    private void DoAnotherThing()
    {
        new Someone().DoSomething();     
    }
}  

我没有回答您关于如何通过传递伪造的 btnSend_clicksender来从任何地方调用EventArgs的问题。

因为写这样的调用不是一个好主意-不久之后,即使代码是您自己编写的,您也会对名称感到困惑。