2008年4月26日 星期六

使用鍵盤Keyboard操控Winform(1)-移動控制項焦點

開發Winform程式時, 可以將表單設計為使用鍵盤的Enter,上,下箭頭鍵移動表單上控制項的輸入焦點,根據亞當斯的觀察,這種操作方式在很多大型主機上,如AS400等系統中都是這樣的操作模式,所以其實很多使用者都已經習慣這樣的操作模式了,然而Winform也有提供這樣的設計功能,只是幾乎很少被提到! 剛好上課時有同學提出這個問題,亞當斯就在這邊紀錄一下設計方式給各位參考。假設有一個表單畫面如下:

KeyboardInput01

用鍵盤移動控制項焦點的設計方式有以下兩個重點步驟:

1.設定Form的KeyPreview 屬性,指出表單是否在事件傳送至具有焦點的控制項之前,要接收按鍵事件,當設定這個屬性為 true,表單將接收所有 KeyPress、KeyDown 和 KeyUp 事件。
KeyboardInput02

2.在From的KeyDown事件中,使用e.KeyCode判斷按下鍵盤的哪一個按鍵,如果按下的是:Enter或是上、下鍵的話,就移動表單中的控制項焦點,程式碼如下:

Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown   
  Select Case e.KeyCode
    Case Keys.Enter, Keys.Down
      SendKeys.Send("{TAB}")
    Case Keys.Up
      SendKeys.Send("+{TAB}")
  End Select
End Sub

下列檔案為此篇文章的範例程式,有興趣的朋友可自行下載:


1 則留言:

Just Lin 提到...

你的WIndows Live 好棒喔
我也要分想:
http://cid-3bf78213656ffb24.office.live.com/documents.aspx#s_dvHead