• 締切済み

VB.NET ボタン押下で一つ前のコントロールへ

お世話になります。 VisualStudio2010 InputMan6.0 上記を使用して、VB.NETで開発をしております。 いくつかテキスト・コンボコントロールが並んでいるFormで、ボタンを押下することで それまでカーソルがあったコントロールの一つ前のTabIndexがあるコントロールへ カーソルを遷移させたいのですが、うまく動きません。 SelectNextControlを使ってみても、ボタン押下の段階でボタンがActiveなコントロールと なってしまうため、ボタンの一つ前のコントロールにカーソルが移動してしまいます。 うまい方法はないでしょうか?

みんなの回答

  • FoolWord
  • ベストアンサー率73% (14/19)
回答No.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

関連するQ&A