Tuesday, March 06, 2007

還要Lost Focus嗎?

以前VB在檢查TextBox的內容時,習慣將檢查的程式,放在TextBox.LostFocus裡,現在,在.net中,放在哪裡會比較適當? 下面有一個表,記錄了TextBox在輸入時相關的事件流程



從這個表可以看出,現在比較適當的寫法應該是,把資料的檢查程式寫在Validating事件中,而通過檢查之後的處理寫在Validated事件中。而且,在Validating事件中,可以中止焦點的轉移,也就是說,如果資料檢查不合格,可以不讓焦點轉移,禁止用戶繼續填下一個項目,直到這個項目正確的被填入。
Sample Code:



這樣,如果輸入的資料不正確,將無法轉移到其他TextBox (e.Cancle = True),也無法觸發其他按鈕。

No comments: