2010/09/21

[VB.Net] Winform Textbox Keypress Event

工作到現在接觸的都是WebForm 居多,很少寫到WinForm的程式
最近正好有人問我WinForm Textbox的問題,做一下筆記方便自己以後查閱囉。

在Textbox要做到對當前輸入的字元來做一些過濾的動作,以往寫WebForm時為了不讓畫面Postback,習慣用Javascript配合Regular Expression(正規表示法)來達到這個功能,而在Winform的做法也是使用Regular Expression來達成,不過試了幾個事件後發現,在KeyPress這個事件檢查應該比較適當(關於KeyPress的說明可以參考MSDN),因為KeyPress只會被字元按鍵所引發,才不會按了Shift鍵或Ctrl鍵也會觸發。在測試的過程發現原來Handled設為True才不會再讓控制項接收我所輸入的值,後來才在前面參考的MSDN的文章裡發現有這麼一段說明「若只是在表單層級處理鍵盤事件,而且不讓其他的控制項接收鍵盤事件,請將表單的 KeyPress 事件處���方法中的 KeyPressEventArgs.Handled 屬性設為 true」。
只能說不應該偷懶只看了第一句就開始在試,走了一點冤枉路了XD,不過也因此得到經驗,也算是有收穫吧:D (看來WinForm有空也要來多摸索一下了)

沒有留言: