从不同的函数C#调用buttonClick

时间:2017-12-13 13:35:05

标签: c# forms visual-studio function button

我有以下按钮执行某些功能

%{TIMESTAMP_ISO8601} \[%{NUMBER:thread}\] %{LOGLEVEL:log-level} ( )?%{DATA:CLASS}\.%{DATA:Function} %{DATA:FunctionName}\:%{GREEDYDATA:remainder}

我想在另一个函数中调用它

        public void btnTurn90_Click(object sender, EventArgs e)
    {
            Turn(-118);
    }

问题是我希望EventArgs每次调用函数内部的按钮时都有一个新值,而且不能和我一起使用

由于

3 个答案:

答案 0 :(得分:1)

我认为您正在寻找的功能称为:PerformClick()

public void move()
{
    btnTurn90.PerformClick();
}

答案 1 :(得分:1)

为什么要从函数调用按钮事件,只需从事件中导出代码并创建函数从两者中调用它

答案 2 :(得分:1)

不要试图"欺骗"用户界面思考点击了什么。将您的代码重构为可调用的操作,并调用它们。每当你有多个事情试图执行相同的操作时,这恰好是用于将UI耦合的事件处理程序的代码 out 移动到通常可访问的内容的用例。

将代码放入自己的方法中:

private void SomeMeaningfulName()
{
    Turn(-118);
}

从事件处理程序中调用该方法:

public void btnTurn90_Click(object sender, EventArgs e)
{
    SomeMeaningfulName();
}

从您的其他代码:

public void move()
{
    SomeMeaningfulName();
}

随着复杂性的增加,您将继续重构为表示有意义对象的不同类,依此类推。因此,不是试图将一堆UI耦合的事件处理程序硬连接在一起,而是最终得到有意义的命名对象和操作,这些对象和操作可以简单轻松地协同工作。调用这些操作的代码开始看起来不像是一个被黑客攻击的UI,更像是正在执行的逻辑的散文描述。