GotFocusイベントでフォーカスされたコントロールの名前とインデックスを取得 ↓ From_KeyDownで上下左右キーのキーコードを取得 ↓ カーソル制御用のSUBを作り、なかで SELECT case コントロールの名前 case TextBox1 IF キーコード=上キー or キーコード=右キー then TextBox1(インデックス - 1).SetFocus ELSE TextBox1(インデックス + 1).SetFocus End IF case TextBox2 ・ ・ ・ END SELECT 上記のやり方をすると、少し書き込まないといけないのですが、カーソル制御のSUBになっているので、デバッグもしやすかったですし、TextBoxの中身をみてカーソルの飛び先を変えることも簡単にできました。
分類:[.NET]
カーソル移動の仕方が困っています。
上下左右キーを使ってカーソルを動かそうと思うのですが、VB6以前の時代でのやり方が出来なくなってしまって困っています。
VB6以前は下記のようなやり方をしていました。
GotFocusイベントでフォーカスされたコントロールの名前とインデックスを取得
↓
From_KeyDownで上下左右キーのキーコードを取得
↓
カーソル制御用のSUBを作り、なかで
SELECT case コントロールの名前
case TextBox1
IF キーコード=上キー or キーコード=右キー then
TextBox1(インデックス - 1).SetFocus
ELSE
TextBox1(インデックス + 1).SetFocus
End IF
case TextBox2
・
・
・
END SELECT
上記のやり方をすると、少し書き込まないといけないのですが、カーソル制御のSUBになっているので、デバッグもしやすかったですし、TextBoxの中身をみてカーソルの飛び先を変えることも簡単にできました。
VB.NETにした場合、コントロール配列が無くなったで、上記のようなことが出来ません。他に良いやり方が思い浮かびません。皆さんはどのようにされているのでしょうか?
補足:画面内のテキストボックスの数 20〜30は当たり前、多いときで50ぐらいのテキストボックスを使っています。