- 題名: BUTTONのKeyPressイベントについて
- 日時: 2004/02/19 17:48:32
- ID: 2597
- この記事の返信元:
- (なし)
- この記事への返信:
- [2622] Re[1]: BUTTONのKeyPressイベントについて2004/02/21 19:32:05
- ツリーを表示
こんばんは、johnさん。ピラルクです。 > なぜ? 規定のフォーカス移動のキーとして処理されるため、 KeyPress,KeyDownには回ってきません。(そういうものです) > なにか方法がありますか? ControlのProcessDialogKey, ProcessCmdKey, ProcessKeyMessage あたりで、こういった標準の動作を変えることが可能です。 手っ取り早くFormでやっちゃうと、以下のような感じ。 Protected Overrides Function ProcessDialogKey(ByVal keyData As Keys) As Boolean If keyData = Keys.Right OrElse _ keyData = Keys.Down OrElse _ keyData = Keys.Left OrElse _ keyData = Keys.Up Then If Me.ActiveControl Is Button1 Then Button2.Focus() Return True End If End If Return MyBase.ProcessDialogKey(keyData) End Function しかし、フォーカス移動の標準の動作を変えることは、 一般にはおすすめできません。多分、GroupBoxかパネルで 分かれているエリアのButtonに移したいのだと思いますが、 このような問題に遭遇した場合は、装飾のあり方や部品の 配置などUIデザインのあり方を再検討するのも一法かと。 あるいは、ここはTabを使ってしかるべき所と割り切る。
分類:[.NET]
↑↓→←を押すと、BUTTONのKeyPressかKeyDownイベントは効きません。
なぜ?
↑↓→←キーよって、カーソルはBUTTONからほかの指定BUTTONへ移動したいです。
なにか方法がありますか?
よろしく。