使定时器执行bidder00_TextChanged事件

本文关键字:TextChanged 事件 bidder00 定时器 执行 | 更新日期: 2023-09-27 17:54:46

我正试图弄清楚如何使它,当我的timer滴答,它执行bidder00_TextChanged,或类似的东西。

这是可能的吗?如果不是,还有别的办法吗?我试着搜索谷歌,但我没有得到任何结果,如果你发现任何我错过了请贴在这里。

我实际上没有任何代码,但这里是:

private void bidder00_TextChanged(object sender, EventArgs e)
{
    if (bidder00.Text == addbidder1.Text)
    {
        bidBtn1.PerformClick();
    }
}

这是我的TextChanged事件

我的timer没有任何代码,因为它将执行bidder00_TextChanged事件。

使定时器执行bidder00_TextChanged事件

您可以创建一个方法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();
   }
}

我假设您已经将实际逻辑与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