- ベストアンサー
TreeViewコントロールについて
VB2005環境です。 TreeViewコントロールを作成し、ノードごとにクリックイベントを 追加して、タブコントロールを呼び出すようにしたいと考えています。 (親ノードをクリックしたら、親ノード用のタブコントロールが 画面に表示され、さらに子ノードAをクリックすると、ノードA用の タブコントロールが表示される、ノードBをクリックすると…という具合に)。 NodeMouseClickイベントを使えば良いのかとは思うのですが、クリックイベントが 子ノード各々ごとに取得できず困っています。 やり方を教えていただけないでしょうか? 更に、そこから各々専用のタブコントロールを呼び出す方法も 教えていただけるとありがたいです。 よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>NodeMouseClickイベントを使えば良いのかとは思うのですが、クリックイベントが >子ノード各々ごとに取得できず困っています。 NodeMouseClickイベントで取得できませんか? Private Sub TreeView1_NodeMouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.TreeNodeMouseClickEventArgs) Handles TreeView1.NodeMouseClick Debug.WriteLine("Text:" & e.Node.Text) Debug.WriteLine("Level:" & e.Node.Level.ToString) End Sub こういうことではないのでしょうか? >更に、そこから各々専用のタブコントロールを呼び出す方法も >教えていただけるとありがたいです。 NodeのTagに識別できる値を設定して処理するとか・・・
その他の回答 (2)
- mjsamiasan
- ベストアンサー率57% (55/95)
補足なのですが、MouseClickイベントでは、文字通りマウス操作にしか対応しないので、AfterSelect等を使った方がよりいいと思われます。 これならkeybord操作にも対応します。 (マウス操作しか想定しないのであれば無視して下さい。)
- unamana19
- ベストアンサー率62% (56/89)
Tabの選択は、NodeMouseClickイベントで Private Sub TreeView1_NodeMouseClick(ByVal sender As Object, _ ByVal e As System.Windows.Forms.TreeNodeMouseClickEventArgs) _ Handles TreeView1.NodeMouseClick With Me.TabControl1 .SelectedTab = .TabPages(e.Node.Text) End With End Sub のようにすればいいかと思います。 ただし、TabControlに追加されているTabの名前(Name)とNodeのTextが同じなのが 条件です。
お礼
ありがとうございます。 マウスクリックイベントから何とかしようとしていたのが よくなかったようです。 大変参考になりました。