-1

我想要做的是,我有一个清除按钮,可以删除每个输入的值。但是,如果我在未输入值的情况下单击它,则会显示错误。因此,我决定如果用户没有输入任何值,清除按钮将被禁用。但是,当我这样做时,清除按钮不会再次启用,所以我想放置一个计时器,在几秒后重新启用清除按钮,比如说 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
}
4

3 回答 3

4

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

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

于 2013-05-12T12:04:41.357 回答
1

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

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;
   }
}
于 2013-05-12T12:02:56.363 回答
0

为什么要为绕行而烦恼?在 button1 的 Click 处理程序中怎么样

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

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

于 2013-05-12T12:19:19.957 回答