几秒钟后重新启用按钮

本文关键字:新启用 按钮 启用 几秒 | 更新日期: 2023-09-27 18:13:16

我想做的是,我有一个清除按钮,删除每个输入的值。但是,如果我单击它而不输入值,则显示错误。因此,我决定如果用户没有输入任何值,那么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
}

几秒钟后重新启用按钮

基于计时器的按钮检查是一种糟糕的方法。如果您只希望在输入数据后启用Clear按钮,则应该在人们输入数据的文本框中订阅"TextChanged"事件。

有关订阅事件的更多信息,请查看MSDN关于"消费事件"的文章。

如何在文本更改时启用/禁用按钮?检查值。如果为Null或空则禁用,否则启用按钮。

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;
   }
}

为什么要绕圈子呢?在button1的Click处理程序

中呢?
if (!String.IsNullOrEmpty(txtFirstActual.Text))
{
    // clear data
}

如果方法调用在某些情况下会失败(即:如果没有任何东西试图清除),那么最好的方法是在进行调用的地方执行检查。这通常比将危险代码留在程序中并在UI中构建锁和障碍物以试图阻止用户访问这些危险代码要简单得多。