電子書籍の厳選無料作品が豊富!

お世話になります。

VisualStudio2010
InputMan6.0

上記を使用して、VB.NETで開発をしております。

いくつかテキスト・コンボコントロールが並んでいるFormで、ボタンを押下することで
それまでカーソルがあったコントロールの一つ前のTabIndexがあるコントロールへ
カーソルを遷移させたいのですが、うまく動きません。

SelectNextControlを使ってみても、ボタン押下の段階でボタンがActiveなコントロールと
なってしまうため、ボタンの一つ前のコントロールにカーソルが移動してしまいます。

うまい方法はないでしょうか?

A 回答 (1件)

こんな感じでどうでしょう。


1.フォーカス制御しないコントロールのTabStopをFalse
2.フォーカス制御を行うコントロールのLeaveイベントの引数senderを記憶
3.ボタンクリックでSelectNextControlを使って、フォーカス制御

-------------- サンプル --------------

' 記憶用コントロール変数
Private c as Control

' フォーカス移動した時のコントロールを記憶
Private Sub Lost_Focus(sender As object, e As System.EventArgs)
c = CType(sender, Control)
End Sub

Private Sub Form1_Load(引数省略)
AddHandler フォーカス対象コントロール.Leave, AddressOf Lost_Focus
   .
   .
   .
AddHandler フォーカス対象コントロール.Leave, AddressOf Lost_Focus

End Sub

' ボタンクリックでフォーカス移動
Private Sub Button1_Click(引数省略)
Me.SelectNextControl(c, False, True, True, True, True)
End Sub

' ボタンクリックでフォーカス前移動
Private Sub Button2_Click(引数省略)
Me.SelectNextControl(c, True, True, True, True, True)
End Sub
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報

このQ&Aを見た人がよく見るQ&A