- 題名: コンテキストメニューを閉じるイベント?
- 日時: 2004/11/29 13:27:40
- ID: 7714
- この記事の返信元:
- (なし)
- この記事への返信:
- [7715] Re[1]: コンテキストメニューを閉じるイベント?2004/11/29 15:47:55
- ツリーを表示
■No7714に返信(ぱるさんの記事) > コンテキストメニューに Closeイベントがないため、 > 元に戻すタイミングがつかめず困っています。 > コンテキストメニューを閉じるイベントを取る方法はあるのでしょうか。 そんなイベントは必要ないかと思われます。 普通にやってれば、Show()メソッド後に元に戻せば良いはずですから。 Private Sub TreeView1_MouseUp(略 If e.Button = MouseButtons.Right Then If TreeView1.SelectedNode Is Nothing = False Then Me.ContextMenu1.Show(Me.TreeView1, New Point(e.X, e.Y)) '/ TODO : ココに元に戻す処理を追加 End If End If End Sub > または、反転表示させる方法が、そもそも間違っているのでしょうか。 そもそも、カレントノードを移した方が平和に済みそうなのですが。 Private Sub TreeView1_MouseDown(ry TreeView1.SelectedNode = TreeView1.GetNodeAt(e.X, e.Y) End Sub
■No7716に返信(ぱるさんの記事) > java.lang.Nullpoさん、ご返答ありがとうございます。 > この方法ですと、コンテキストメニューが表示されている間、反転(強調)表示 > させることが出来ません。 > java.lang.Nullpoさんがおっしゃることはもっともなのですが、今回行 > いたいこととして、Windowsのエクスプローラのように、右クリックした > ノード(SelectedNodeではない)のテキストを、コンテキストメニュー > が表示されている間、反転(強調)表示させたいのです。 組み合わせて考えて欲しかったかな・・・。orz Private Sub TreeView1_MouseUp(略 Dim hNode As TreeNode If e.Button = MouseButtons.Right Then hNode = TreeView1.GetNodeAt(e.X, e.Y) If hNode Is Nothing = False Then hNode.BackColor = Color.FromName("ActiveCaption") Me.ContextMenu1.Show(Me.TreeView1, New Point(e.X, e.Y)) hNode.BackColor = Color.FromName("Window") End If End If End Sub
分類:[.NET]
いつもお世話になっています。
Windowsのエクスプローラのようなものを作ろうとしていて、
ツリービュー上のノードを右クリックした際に、コンテキスト
メニューを表示するようにしています。
この時、右クリックされた対象ノードのテキストを反転表示さ
せる(SelectedNodeにはしない)ようにしたいと思っています。
ここで、右クリックしたときにテキストを反転させることはで
きる(ForeColorとBackColorの変更)のですが、コンテキスト
メニューに Closeイベントがないため、元に戻すタイミングが
つかめず困っています。
コンテキストメニューを閉じるイベントを取る方法はあるので
しょうか。
または、反転表示させる方法が、そもそも間違っているので
しょうか。
よろしくお願いいたします。