2013-07-09 141 views
8

我正在使用Microsoft Visual C#2010 Express。當我使用箭頭更改numericUpDown的值時,我的按鈕變爲啓用。但我也想通過直接更改文本來更改numericUpDown的值時啓用我的按鈕。NumericUpDown的TextChanged事件

我使用下面的代碼:

private void numericUpDown1_ValueChanged(object sender, EventArgs e) 
{ 
    button1.Enabled = true; 
} 
+0

這是什麼問題? – Abbas

+1

在更改數字 –

+0

或嘗試按enter鍵後,嘗試將numericUpDown控件的光標聚焦。您也可以訂閱按鍵事件,但請記住文本尚未驗證,因此如果您在此處調用該值,您將獲得舊值。但是,如果您在button.Click事件中調用numericUpdown值,它將會被更改。 – Martheen

回答

16

您可能需要使用的,而不是使用ValueChangedTextChanged事件。 Value changed事件需要您在更改值之後按Enter鍵以獲取ValueChanged。

什麼MSDN說的NumericUpDown.ValueChanged事件

要發生ValueChanged事件,Value屬性可以通過單擊向上或向下按鈕,或通過輸入 新值,用戶可以更改代碼 ,這是由控制器讀取的。 當 用戶點擊ENTER鍵或離開控件導航時讀取新值。如果 用戶輸入一個新值,然後單擊向上或向下按鈕,則ValueChanged事件將發生兩次,即MSDN

綁定TextChanged事件。

private void TestForm_Load(object sender, EventArgs e) 
{ 
    numericUpDown1.TextChanged += new EventHandler(numericUpDown1_TextChanged); 
} 

宣言TextChanged事件的。

void numericUpDown1_TextChanged(object sender, EventArgs e) 
{ 
    button1.Enabled = true; 
} 
+0

是否有可能,當我改變的價值,按鈕變得啓用,而不按下輸入? – Lany

+0

您是否嘗試過TextChanged事件? – Adil

+0

是的,我已經嘗試過......不適用於此。 但是可以通過按下回車按鈕來完成。 btw thankz :) – Lany