2010-04-20 18 views
0

在KeyDown和KeyUp事件我附上處理程序,以一個Silverlight 3文本框的KeyDown和KeyUp事件像這樣:如何處理兩者在Silverlight 3的TextBox

_masterTextBox.KeyDown += (s, args) => 
{ 
    CheckForUserEnteredText(MasterTextBox.Text); 
    args.Handled = false; 
}; 

_masterTextBox.KeyUp += (s, args) => { UpdateText(MasterTextBox.Text); }; 

當我註釋掉的KeyDown處理程序,那麼KeyUp將捕獲該事件,否則,只會觸發KeyDown處理程序。

有人可以解釋爲什麼KeyUp事件處理程序不在KeyDown處理程序執行後觸發?

謝謝。

回答

0

我想你需要看看你的CheckForUserEnteredText功能。當然,KeyUp的發佈代碼沒有理由不會觸發,它在我的測試中也是如此。

也許CheckForUserEnteredText做了什麼來阻止它?您似乎同時擁有一個名爲MasterTextBox的公共字段/屬性和一個名爲_masterTextBox的屬性,您是否需要這兩者?它可能是KeyUp正在解僱,但UpdateText沒有做你期望的?列表可以繼續,底線是你已經發布的代碼沒有問題。

0

事實證明,問題是我在keydown方法中設置了一個斷點。顯然,當你設置一個斷點時,它會錯過鍵盤事件。