1

我试图弄清楚如何使它在我的timer滴答声中执行 abidder00_TextChanged或类似的东西。

这甚至可能吗?如果不是,还有其他方法吗?我尝试在 Google 上搜索它,但没有得到任何结果,如果您发现我遗漏的任何内容,请在此处发布。

我真的没有任何代码,但这里是:

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

那是我的TextChanged活动

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

4

2 回答 2

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();
   }
}
于 2013-01-21T14:26:55.367 回答
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直接调用。

于 2013-01-21T14:28:40.943 回答