VB6のテンプレートのフォームにログオン画面がありますが、
ユーザー名(&U) txtUserNameテキスト
パスワード(&P) txtPasswordテキスト
となっているかと思います。
ショートカットキー[Alt+U]や[Alt+P]を押下すると、
確かにそれぞれのテキストへSetFocusされるのですが、
こちらはコードによるものではないと思われます。
ということはプロパティの設定で[Alt+U]を押下すると
txtUserNameテキストへSetFocusするという設定がされているのでしょうか?
ショートカットの判定でSetFocusさせるプログラミングをしたほうがよいのでしょうが、
プロパティの設定で簡単に出来るのであれば、そちらの方がよいと思いました
ご存知のかた、よろしくお願いします。
以下、ヘルプ(MSDNライブラリ)の「ラベル (Label) コントロール」より抜粋。
----------------------------------------------------------------------
アクセス キーとしてラベル コントロールの Caption プロパティに
1 文字を定義するには、UseMnemonic プロパティを真 (True) に設定します。
ラベル コントロールにアクセス キーを定義すると、Alt キーと指定した文字のキーを同時に押して、
次のタブ オーダーのコントロールにフォーカスを移動することができます。
----------------------------------------------------------------------
同じく、「UseMnemonic プロパティ」より抜粋。
---------------------------------------------------------------------
ラベル (Label) コントロールの Caption プロパティの文字列に、
アンパサンド (&) を使ってアクセス キーを定義するかどうかを指定する値を設定します。
---------------------------------------------------------------------
タブインデックスに注目してください。
ラベルのアクセスキーを押下
→ラベルにフォーカスを移そうとする
→ラベル自体はフォーカスを持つことが出来ないので、
次のコントロールにフォーカスを移す
なので、タブインデックスの順は、次のようになっている筈です。
ユーザー名(&U) → txtUserNameテキスト
パスワード(&P) → txtPasswordテキスト
大吉末吉様、まさ様
ログオン画面のようなイメージのフォームを新たに作成し、
lblUserName.UseMnemonic = True
lblPassword.UseMnemonic = True
lblUserName.TabIndex = 0
txtUserNameテキスト.TabIndex = 1
lblPassword.TabIndex = 2
txtPasswordテキスト.TabIndex = 3
とすれば、うまくいきました。
ご丁寧に有難うございました。
ツイート | ![]() |