Public Class Form1 Dim menu As ContextMenuStrip Dim tree As TreeView Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load tree = New TreeView AddHandler tree.MouseDown, AddressOf TreeMouseDown For i As Integer = 0 To 10 Dim n As New TreeNode("Node" + i.ToString) For j As Integer = 0 To 5 n.Nodes.Add("SubNode" + j.ToString) Next tree.Nodes.Add(n) Next tree.Dock = DockStyle.Fill Me.Controls.Add(tree) menu = New ContextMenuStrip menu.Items.Add("展开", Nothing, AddressOf ItemClick) menu.Items.Add("新建", Nothing, AddressOf ItemClick) menu.Items.Add("查找", Nothing, AddressOf ItemClick) tree.ContextMenuStrip = menu End Sub Private Sub ItemClick(ByVal sender As Object, ByVal e As System.EventArgs) Select Case CType(sender, ToolStripMenuItem).Text Case "展开" tree.SelectedNode.Expand() Case "折叠" tree.SelectedNode.Collapse() Case Else MsgBox("Test") End Select End Sub Private Sub TreeMouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Dim n As TreeNode = tree.SelectedNode If n IsNot Nothing Then If n.Nodes.Count > 0 Then menu.Items(0).Enabled = True If n.IsExpanded Then menu.Items(0).Text = "折叠" Else menu.Items(0).Text = "展开" End If Else menu.Items(0).Enabled = False End If End If End SubEnd Class public class Form1 {
ContextMenuStrip menu; TreeView tree;
private void Form1_Load(object sender, System.EventArgs e) { tree = new TreeView(); tree.MouseDown += TreeMouseDown; for (int i = 0; i <= 10; i++) { TreeNode n = new TreeNode("Node" + i.ToString); for (int j = 0; j <= 5; j++) { n.Nodes.Add("SubNode" + j.ToString); } tree.Nodes.Add(n); } tree.Dock = DockStyle.Fill; this.Controls.Add(tree);
menu = new ContextMenuStrip(); menu.Items.Add("展开", null, ItemClick); menu.Items.Add("新建", null, ItemClick); menu.Items.Add("查找", null, ItemClick);
如果有发现看不到图片连接的.
请点击:http://picasaweb.google.com/loneysing/MgHqGH/photo#5189615495064727666
Public Class Form1 Dim menu As ContextMenuStrip
Dim tree As TreeView Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
tree = New TreeView
AddHandler tree.MouseDown, AddressOf TreeMouseDown
For i As Integer = 0 To 10
Dim n As New TreeNode("Node" + i.ToString)
For j As Integer = 0 To 5
n.Nodes.Add("SubNode" + j.ToString)
Next
tree.Nodes.Add(n)
Next
tree.Dock = DockStyle.Fill
Me.Controls.Add(tree) menu = New ContextMenuStrip
menu.Items.Add("展开", Nothing, AddressOf ItemClick)
menu.Items.Add("新建", Nothing, AddressOf ItemClick)
menu.Items.Add("查找", Nothing, AddressOf ItemClick) tree.ContextMenuStrip = menu
End Sub Private Sub ItemClick(ByVal sender As Object, ByVal e As System.EventArgs)
Select Case CType(sender, ToolStripMenuItem).Text
Case "展开"
tree.SelectedNode.Expand()
Case "折叠"
tree.SelectedNode.Collapse()
Case Else
MsgBox("Test")
End Select
End Sub Private Sub TreeMouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)
Dim n As TreeNode = tree.SelectedNode
If n IsNot Nothing Then
If n.Nodes.Count > 0 Then
menu.Items(0).Enabled = True
If n.IsExpanded Then
menu.Items(0).Text = "折叠"
Else
menu.Items(0).Text = "展开"
End If
Else
menu.Items(0).Enabled = False
End If End If
End SubEnd Class
public class Form1
{
ContextMenuStrip menu;
TreeView tree;
private void Form1_Load(object sender, System.EventArgs e)
{
tree = new TreeView();
tree.MouseDown += TreeMouseDown;
for (int i = 0; i <= 10; i++) {
TreeNode n = new TreeNode("Node" + i.ToString);
for (int j = 0; j <= 5; j++) {
n.Nodes.Add("SubNode" + j.ToString);
}
tree.Nodes.Add(n);
}
tree.Dock = DockStyle.Fill;
this.Controls.Add(tree);
menu = new ContextMenuStrip();
menu.Items.Add("展开", null, ItemClick);
menu.Items.Add("新建", null, ItemClick);
menu.Items.Add("查找", null, ItemClick);
tree.ContextMenuStrip = menu;
}
private void ItemClick(object sender, System.EventArgs e)
{
switch (((ToolStripMenuItem)sender).Text) {
case "展开":
tree.SelectedNode.Expand();
break;
case "折叠":
tree.SelectedNode.Collapse();
break;
default:
Interaction.MsgBox("Test");
break;
}
}
private void TreeMouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
{
TreeNode n = tree.SelectedNode;
if (n != null) {
if (n.Nodes.Count > 0) {
menu.Items(0).Enabled = true;
if (n.IsExpanded) {
menu.Items(0).Text = "折叠";
}
else {
menu.Items(0).Text = "展开";
}
}
else {
menu.Items(0).Enabled = false;
}
}
}
}