我有以下按钮执行某些功能
%{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每次调用函数内部的按钮时都有一个新值,而且不能和我一起使用
由于
答案 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,更像是正在执行的逻辑的散文描述。