- 題名: コンテキストメニューを閉じるイベント?
- 日時: 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イベントがないため、元に戻すタイミングが
つかめず困っています。
コンテキストメニューを閉じるイベントを取る方法はあるので
しょうか。
または、反転表示させる方法が、そもそも間違っているので
しょうか。
よろしくお願いいたします。