2013-05-12 145 views
-1

我想要做的是,我有一個清除按鈕,刪除每個輸入的值。但是,如果我沒有輸入值就點擊它,它會顯示錯誤。因此,我決定如果用戶沒有輸入任何值,清除按鈕將被禁用。但是,當我這樣做時,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 
} 
+0

監聽值更改事件並將按鈕狀態更改爲啓用/禁用。 – SachinGutte 2013-05-12 12:02:46

+0

爲什麼不告訴我們錯誤和你用來刪除這些值的代碼。糾正該代碼可能是一個更好的解決方案,而不是使用UI-hack修補它。您可能想在其他地方重新使用刪除代碼;這將使它更好,更便攜,更可重用的代碼。 – 2013-05-12 12:06:13

回答

0

爲什麼打擾繞行?如何在按鈕1的Click處理程序

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

如果方法調用會在某些情況下會失敗(即:試圖清除,如果無所不有),那麼最好的方法是執行,你正在呼叫的檢查。這通常比將危險代碼留在程序中更容易,更清潔,並且在UI中構建鎖和障礙物以防止用戶訪問危險代碼。

+0

非常多的工作像一個魅力:D – 2013-05-12 12:24:22

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

看起來很棒,但我該怎麼做 – 2013-05-12 12:05:15

+0

@MohammedTurki:什麼是ASP/Winforms或WPF? – 2013-05-12 12:06:25

+0

它的windowsform伴侶 – 2013-05-12 12:07:20

4

基於計時器的按鈕檢查是一個不好的方法。如果您只想在輸入數據後啓用清除按鈕,則應在人員輸入數據的文本框中訂閱「TextChanged」事件。

有關訂閱事件的更多信息,請查看關於「Consuming Events」的MSDN文章。

相關問題