- 締切済み
VB.NET ボタン押下で一つ前のコントロールへ
お世話になります。 VisualStudio2010 InputMan6.0 上記を使用して、VB.NETで開発をしております。 いくつかテキスト・コンボコントロールが並んでいるFormで、ボタンを押下することで それまでカーソルがあったコントロールの一つ前のTabIndexがあるコントロールへ カーソルを遷移させたいのですが、うまく動きません。 SelectNextControlを使ってみても、ボタン押下の段階でボタンがActiveなコントロールと なってしまうため、ボタンの一つ前のコントロールにカーソルが移動してしまいます。 うまい方法はないでしょうか?
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- FoolWord
- ベストアンサー率73% (14/19)
こんな感じでどうでしょう。 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