プロプログラマ

プログラマーを職業としてます。 Flex,Air,C#,Oracle,HTML+JSの言語ノウハウを中心に情報発信していきます

[C#] TreeViewのノードを右クリックでも選択させる

TreeViewの各ノードは左クリックすることで選択され、SelectedNodeプロパティがセットされます。
右クリックした場合、見た目は選択されているように見えますが、SelectedNodeは書き換わっておらず、前の選択ノードが入ったままです。
その値を使って処理をしようとした時に、おかしな動きをします。
WS000000

見た目が選択状態にならなければまだいいんですが、選択したように見えてしまうのが問題です。
また、ノードを右クリックしてコンテキストメニューを選択したいような場合、自然と右クリックでノード選択をしたくなります。

というわけで、ノードを右クリックでも選択させる方法です。

TreeViewのMouseDownイベントを設定します。

         private void treeView1_MouseDown( object sender, MouseEventArgs e)
        {
            // 右クリックでもノードを選択させる
            if (e.Button == MouseButtons.Right)
            {
                treeView1.SelectedNode = treeView1.GetNodeAt(e.X, e.Y);
            }
        }

これだけです。簡単ですね。

 

== ランキングに参加しています。ぜひクリックお願いします ==

プログラム ブログランキングへ
にほんブログ村 IT技術ブログへ
にほんブログ村

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください