我正在试图弄清楚当我的timer
滴答时,它会执行bidder00_TextChanged
或类似的事情。
这甚至可以吗?如果不是,还有其他办法吗? 我试图搜索谷歌,但我没有得到任何结果,如果你发现我错过了什么,请在这里发布。
我真的没有任何代码,但现在是:
private void bidder00_TextChanged(object sender, EventArgs e)
{
if (bidder00.Text == addbidder1.Text)
{
bidBtn1.PerformClick();
}
}
这是我的TextChanged
事件
我的timer
没有任何代码,因为它将执行bidder00_TextChanged
事件。
答案 0 :(得分:3)
您可以创建方法Perform()
并在事件处理程序中调用它:
private void timer1_Tick(object sender, EventArgs e)
{
Perform();
}
private void bidder00_TextChanged(object sender, EventArgs e)
{
Perform();
}
private void Perform()
{
if (bidder00.Text == addbidder1.Text)
{
bidBtn1.PerformClick();
}
}
答案 1 :(得分:1)
我认为您已将实际逻辑与click
事件相结合,这不是一个好主意。将代码分离出一个单独的函数,并让应用程序的两个部分调用相同的代码,例如。
private void SubmitBid()
{
// code you want to execute
}
private void OnSubmitBid()
{
// confirm whether we can actually submit the bid
if (bidder00.Text == addbidder1.Text)
{
SubmitBid();
}
}
private void Timer1_OnTick(object sender, EventArgs e)
{
// trigger code from timer
OnSubmitBid();
}
private void bidder00_TextChanged(object sender, EventArgs e)
{
// trigger code from text change
OnSubmitBid();
}
private void btnBid_Click(object sender, EventArgs e)
{
// trigger code from button press
OnSubmitBid();
}
请注意,所有UI控件都会触发相同的代码。在那里有一个额外的调用用于文本控制验证(即OnSubmitBid()
) - 如果不需要,那么你只需直接调用SubmitBid
。