几秒钟后重新启用按钮

时间:2013-05-12 12:00:22

标签: c#

我想要做的是,我有一个清除按钮,删除每个输入的值。但是,如果我单击它而不输入值,则会显示错误。因此,我决定如果用户没有输入任何值,则将禁用“清除”按钮。但是,当我这样做时,Clear按钮不会再次启用,所以我想放一个定时器,在几秒钟后重新启用Clear按钮让我们说3秒钟。有人可以帮我吗?顺便说一下它应该在C#中 到目前为止我做了什么

if (txtFirstActual.Text.Length > 0)
{
    //so that if the user clicked on Clear button without entering a value, it will disable the button
    button1.Enabled = true;               
}
else
{
    button1.Enabled = false;
    // here, i want to put a timer here so that it re enables the button after few sec's
}

3 个答案:

答案 0 :(得分:4)

基于计时器的按钮检查是一种不好的方法。如果您只想在输入数据后启用“清除”按钮,则应订阅" TextChanged"人们输入数据的文本框中的事件。

有关订阅活动的更多信息,请查看关于" Consuming Events的这篇MSDN文章。"

答案 1 :(得分:1)

如何启用/禁用文本上的按钮更改。检查值。如果是空或空禁用,否则启用按钮。

private void MyTextBox_TextChanged(object sender, EventArgs e)
{
   try
   {
      if(String.IsNullOrEmpty(((TextBox)sender).Text)))
      {
          MyClearButton.Enabled = false;
      }
      else
      {
          MyClearButton.Enabled = true;
      }
   }
   catch
   {
       MyClearButton.Enabled = false;
   }
}

答案 2 :(得分:0)

为什么要烦恼?在button1的Click处理程序

中怎么样
if (!String.IsNullOrEmpty(txtFirstActual.Text))
{
    // clear data
}

如果方法调用在某些情况下会失败(例如:尝试清除是否存在任何内容),那么最好的方法是执行检查所在的位置。这通常比在程序中保留危险代码以及在UI中构建锁和障碍以试图阻止用户访问该危险代码更容易和更清晰。