几秒钟后重新启用按钮
本文关键字:新启用 按钮 启用 几秒 | 更新日期: 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中构建锁和障碍物以试图阻止用户访问这些危险代码要简单得多。