我的问题是如何发送这里Dispatchertimer.Tick事件一些参数是代码:我想是在收到一个dispatcheTimer_Tick整数值
dispatcherTimer.Tick += new EventHandler(dispatcherTimer_Tick);
private void dispatcherTimer_Tick(object sender, EventArgs e)
{
//.Text = DateTime.Now.Second.ToString();
}
我想要做的是这样的
private void dispatcherTimer_Tick(object sender, EventArgs e,int a)
{
//.Text = DateTime.Now.Second.ToString();
}
如何发送从呼叫点的值?
虽然有多种方式,我觉得最方便使用匿名方法执行此操作时可以关上的变量:
dispatcherTimer.Tick += (s, args) => myControl.Text = DateTime.Now.Second.ToString();
如果你有行了一把,你也可以做更多的东西一样:
int number = 5;
dispatcherTimer.Tick += (s, args) =>
{
string value = someMethod();
string otherValue = DateTime.Now.Second.ToString()
myControl.Text = value + otherValue + number;
}
如果您拥有的不仅仅是一个线更屈指可数,那么你可能还是要另一种方法,但你可以使用lambda调用该方法:
int value = 5;
dispatcherTimer.Tick += (s, args) => myRealMethod(someControl, value);
public void myRealMethod(Control someControl, int value)
{
someControl.Text = value;
}
这是方便了事件处理程序的委托,当你不需要他们(我几乎从来不使用的两个忽略的参数sender
,我通过实际的对象自己,如果我需要它,这样,它不是强制转换为object
第一个。)以及添加在另外的局部变量。
如果你知道a
你要附加事件处理程序的时候,你可以这样做:
int a = 0;
dispatcherTimer.Tick += (sender, e) =>
{
/* a is available here */
};