2010/09/24
[VB.Net] 鍵盤事件介紹 (KeyPress、KeyDown、KeyUp)
繼上篇使用KeyPress事件達到過濾的功能,後來發現按下BackSpace及Enter也會觸發此事件(但我不想要讓這2個按鍵觸發此事件),於是上網找找相關資訊,發現原來只要該按鍵具有KeyAscii碼,即會觸發KeyPress事件。下面這篇文章有介紹何時會觸發各鍵盤事件 (KeyPress、KeyDown、KeyUp)。
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有空也要來多摸索一下了)
最近正好有人問我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有空也要來多摸索一下了)
訂閱:
意見 (Atom)