- PR -

Tabキーが押されたことを知りたい

1
投稿者投稿内容
MrKong
常連さん
会議室デビュー日: 2004/01/24
投稿数: 22
投稿日時: 2004-02-06 19:32
お世話になります。

押されたキーによってKeyDownイベント内で処理を分岐させようと考えています。
しかしながら、どういう訳か「Tab」キーだけ拾えません。
IF文で
   if e.KeyCode=Keys.Tab then
と記述してもぜんぜんひっかかりません。
ちなみにすべてのキーでKeyCodeを調べましたが、
やはり「Tab」だけ無反応でした、、、

何かいい方法はないのでしょうか?
ご存知の方がいらっしゃいましたらお教えください。
お願いします。

<開発環境>
Win2000Pro、VB.NET2003、.NETframework1.1
※WinXPでもダメでした。

YearHorn
会議室デビュー日: 2004/01/15
投稿数: 11
投稿日時: 2004-02-07 21:52
これはフォーカスの移動をするのにTabキーを使うため、
ウィンドウやコントロールが勝手にTabキーをつかまえて
処理してしまうせいです。
回避するには、TabStopプロパティをfalseに設定します。

Form window = new Form();
window.TabStop = false;
Button button = new Button();
button.TabStop = false;

☆ 2004年2月8日 12:36 追記 ☆
ごめん、間違えた。上のは関係なかった
正解は IsInputKey(Keys) をオーバーライドする、でした。
コード:

protected override bool IsInputKey(Keys keyData){
if(keyData == Keys.Tab){
return true;
}
return base.IsInputKey(keyData);
}



[ メッセージ編集済み 編集者: YearHorn 編集日時 2004-02-08 12:42 ]
MrKong
常連さん
会議室デビュー日: 2004/01/24
投稿数: 22
投稿日時: 2004-02-09 10:38
YearHornさん、ありがとうございました。
IsInputKeyをオーバーライドする方法でうまくいきました。

VB6からスタートしたので、
.NETでできることできないことにまだとまどっている状況です。
今後もよろしくお願いします。
1

スキルアップ/キャリアアップ(JOB@IT)