[C#] TreeViewのノードを右クリックでも選択させる
TreeViewの各ノードは左クリックすることで選択され、SelectedNodeプロパティがセットされます。
右クリックした場合、見た目は選択されているように見えますが、SelectedNodeは書き換わっておらず、前の選択ノードが入ったままです。
その値を使って処理をしようとした時に、おかしな動きをします。
見た目が選択状態にならなければまだいいんですが、選択したように見えてしまうのが問題です。
また、ノードを右クリックしてコンテキストメニューを選択したいような場合、自然と右クリックでノード選択をしたくなります。
というわけで、ノードを右クリックでも選択させる方法です。
TreeViewのMouseDownイベントを設定します。
private void treeView1_MouseDown( object sender, MouseEventArgs e) { // 右クリックでもノードを選択させる if (e.Button == MouseButtons.Right) { treeView1.SelectedNode = treeView1.GetNodeAt(e.X, e.Y); } }
これだけです。簡単ですね。
== ランキングに参加しています。ぜひクリックお願いします ==
[Oracle] 10進数を2進数表現で表示する Googleで「マネージャー」を画像検索すると癒される件