2013-03-31 22 views
-1

所以我在一家C#項目(的WinForms),所以我有很多文本框在我的項目,我想,當我按下鍵,特定的文本框,讓說textbox1增加自己的價值,我已經使用事件OnKeyUp但它的問題,我有很多文本框,所以我不得不點擊進入這個TextBox1開始操作,所以請如果有人有任何想法,我將非常感激。如何通過按下鍵來訪問文本框?

這是我的代碼:

//Action speed up 
private void TxBoxKeyUp_KeyUp(object sender, KeyEventArgs e) 
{ 
    TxBoxKeyUp.Text = (speed+=5).ToString(); 
    LbSpeed.Text = TxBoxKeyUp.Text; 
} 
+0

請修復您的問題,使您想要做的更清楚。什麼是'速度'?你爲什麼要增加它*每次按鍵和釋放鍵?你爲什麼將這個值存儲在一個'TextBox'中,然後存儲在一個標籤中,而不是直接設置標籤?這個問題只是令人困惑... –

回答

1

如果你想處理KeyUp事件爲窗體上的每個控件,那麼你可以在Form.KeyPreview屬性設置爲True。 然後添加一個KeyUp事件處理程序的形式,並且在這種情況下更新您的文本框的內容

private void Form1_KeyUp(object sender, KeyEventArgs e) 
{ 
    TxBoxKeyUp.Text = (speed+=5).ToString(); 
    LbSpeed.Text = TxBoxKeyUp.Text; 
} 

這工作得很好,如果你的目的是要抓住每一個KEYUP無論控制是集中控制當時的事件觸發。如果只有在焦點控件是TextBox的情況下才需要獲取鍵盤輸入,那麼解決方案會更復雜。你需要一個method like the one explained in this question來獲得當前集中控制,然後檢查它是否是文本框。

0

您可以將您的文本框定義爲數組,然後使用委託。

假設您有一個keyup事件TxBoxKeyUp_KeyUp和文本框的陣列txtarr

foreach (TextBox txt in txtarr) 
    txt.KeyUp += new KeyEventHandler(TxBoxKeyUp_KeyUp); 

因此,你可以處理所有的文本框KEYUP具有單一功能的事件。

相關問題