【问题标题】:Make a timer perform bidder00_TextChanged Event让计时器执行 bidder00_TextChanged 事件
【发布时间】:2013-01-21 14:18:33
【问题描述】:

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

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

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

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

那是我的TextChanged 活动

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

【问题讨论】:

  • 向我们展示一些代码,以便我们更好地了解您想要在这里实现的目标。
  • 为什么不从 TextChanged 事件和 Timer Tick 事件中调用相同的方法,而不是触发事件?
  • 嗯。 究竟你想要什么?
  • 我希望我的计时器执行我的 bidder00_TextChanged 事件。

标签: c# winforms timer textchanged


【解决方案1】:

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

【讨论】:

  • 我认为这就是我所需要的!我会尝试并告诉你是否有效。
  • @Dozer789 另外我认为您应该将 bidBtn 事件处理程序提取到单独的方法中,然后调用它而不是执行点击
  • @Dozer789 就像我的回答所暗示的那样
  • @James 我正在使用 AbZy 说的代码,我如何调用 PerformClick 的 insted
  • 正如我在回答中所说,您需要消除业务逻辑与点击事件之间的耦合。 UI 控件应该用于将调用委托给您的实际模型,它们背后不应有 任何 逻辑,除非它是特定于 UI 的。我会更新我的答案给你一个例子
【解决方案2】:

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

【讨论】:

  • 刚刚做了。非常感谢您的所有帮助!
猜你喜欢
  • 2014-01-27
  • 1970-01-01
  • 1970-01-01
  • 2011-12-20
  • 2011-01-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-03
相关资源
最近更新 更多