Private Sub TreeView1_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single) If Button = vbRightButton Then If TreeView1.SelectedItem Is TreeView1.HitTest(x, y) Then menuPopupItem.Caption = TreeView1.SelectedItem.Text Me.PopupMenu menuPopup End If End If End Sub
1.编辑一个菜单(菜单项设置为添加、删除、重命名、更换图标),各个菜单项下面写代码 2.右击treeview的时候 ,用PopupMenu方法弹出菜单 Private Sub TreeView1_MouseUp(Button As Integer, Shift As Integer, x As Single, Y As Single) If Button <> 2 Then Exit Sub ' PopupMenu 菜单名称 End Sub 3.添加,删除,重命名,更换图标 TreeView1.Nodes.Add(relative, relationship, key, text, image, selectedimage) TreeView1.Nodes.Remove (Index) TreeView1.LabelEdit =tvwAutomatic TreeView1.Nodes(Index).Image = "imagelist中的关键字或者序号"
Option ExplicitDim I As Integer Dim J As Integer Dim nodx As Node Dim CunZai As Boolean '定义变量 Private Sub Command1_Click() If Text1.Text <> "" And Text2.Text <> "" Then '不允许建立零字节的父节点和子节点 CunZai = False J = TreeView1.Nodes.Count For I = 1 To TreeView1.Nodes.Count '检查新输入的父节点名称是否存在 If TreeView1.SelectedItem.Children > 0 Then If Text1.Text = TreeView1.Nodes(I).Text Then CunZai = True End If Next I If CunZai = True Then '若存在, 则在父节点下建立子节点 Set nodx = TreeView1.Nodes.Add(Text1.Text, tvwChild, "child" & J, _ Text2.Text, 3) Else '若不存在,则建立父节点和子节点 Set nodx = TreeView1.Nodes.Add(, , Text1.Text, Text1.Text, 1) Set nodx = TreeView1.Nodes.Add(Text1.Text, tvwChild, "child" & J, _ Text2.Text, 3) End If TreeView1.Refresh ElseIf Text1.Text = "" Then MsgBox "请输入父节点名称!", vbInformation, "警告!" '系统提示 ElseIf Text2.Text = "" Then MsgBox "请输入子节点名称!", vbInformation, "警告!" End If End SubPrivate Sub Command2_Click() For I = 1 To TreeView1.Nodes.Count TreeView1.Nodes(I).Expanded = True '展开所有节点 Next I End SubPrivate Sub Command3_Click() For I = 1 To TreeView1.Nodes.Count TreeView1.Nodes(I).Expanded = False '收起所有节点 Next I End SubPrivate Sub Command4_Click() TreeView1.Sorted = True '排列顺序 End SubPrivate Sub Command5_Click() If TreeView1.SelectedItem.Index <> 1 Then TreeView1.Nodes.Remove TreeView1.SelectedItem.Index '删除选定的节点 End If End SubPrivate Sub Command6_Click() End '退出程序 End SubPrivate Sub Form_Load() TreeView1.LineStyle = tvwTreeLines '在兄弟节点和父节点之间显示线 TreeView1.ImageList = ImageList1 '链接图像列 TreeView1.Style = tvwTreelinesPlusMinusPictureText '树状外观包含全部元素 Set nodx = TreeView1.Nodes.Add(, , "蒲子明", "蒲子明", 1) '建立名称为"蒲子明"的父节点,选择索引为1的图像 Set nodx = TreeView1.Nodes.Add("蒲子明", tvwChild, "child01", "收件箱", 3) '在"蒲子明"父节点下建立"收件箱"子节点,选择索引为3的图像 Set nodx = TreeView1.Nodes.Add("蒲子明", tvwChild, "child02", "发件箱", 3) '在"蒲子明"父节点下建立"发件箱"子节点,选择索引为3的图像 CunZai = False End SubPrivate Sub TreeView1_Expand(ByVal Node As MSComctlLib.Node) Node.ExpandedImage = 2 '节点被展开时,选择索引为2的图像 End SubPrivate Sub TreeView1_NodeClick(ByVal Node As MSComctlLib.Node) If TreeView1.SelectedItem.Children = 0 Then '检查是否有子节点,0为无 For I = 1 To TreeView1.Nodes.Count If TreeView1.Nodes(I).Selected Then MsgBox "您选择的是:“" & TreeView1.Nodes(I).FullPath & "”子节点!" '系统提示 End If Next I End If End Sub
给你一个删除的例子,其他照做'弹出菜单 Private Sub TreeView1_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single) If Button = vbRightButton Then If TreeView1.SelectedItem Is TreeView1.HitTest(x, y) Then Me.PopupMenu menuPopup End If End If End Sub'删除选定的节点 Private Sub mnut1_Click() If TreeView1.SelectedItem.Index <> 1 Then TreeView1.Nodes.Remove TreeView1.SelectedItem.Index End If End Sub
删除 这项名称是什么?我用mnut1(红色的),换成你自己的Private Sub mnut1_Click() If TreeView1.SelectedItem.Index <> 1 Then TreeView1.Nodes.Remove TreeView1.SelectedItem.Index End If End Sub
我用cut 我来试试
不行 出现对性变量或with块变量未设置
Private Sub cut_Click() If TreeView1.SelectedItem.Index <> 1 Then TreeView1.Nodes.Remove TreeView1.SelectedItem.Index End IfEnd Sub
你的TreeView控件的名称是什么?不是TreeView1吗? 我是从你的代码Private Sub Command5_Click() If TreeView1.SelectedItem.Index <> 1 Then TreeView1.Nodes.Remove TreeView1.SelectedItem.Index '删除选定的节点 End If End Sub 改的这个代码没运行过吗?
是这样的啊 可是这饿删除怎么不行啊啊? 出现对象变量或with块变量未设置 我上面的按钮可以运行啊
'弹出菜单 Private Sub TreeView1_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single) If Button = vbRightButton Then If TreeView1.SelectedItem Is TreeView1.HitTest(x, y) Then Me.PopupMenu menuPopup End If End If End Sub这个代码加了吗?是加我这个吗?
Option ExplicitDim I As Integer Dim J As Integer Dim nodx As Node Dim CunZai As Boolean '定义变量 Private Sub Command1_Click() If Text1.Text <> "" And Text2.Text <> "" Then '不允许建立零字节的父节点和子节点 CunZai = False J = TreeView1.Nodes.Count For I = 1 To TreeView1.Nodes.Count '检查新输入的父节点名称是否存在 If TreeView1.SelectedItem.Children > 0 Then If Text1.Text = TreeView1.Nodes(I).Text Then CunZai = True End If Next I If CunZai = True Then '若存在, 则在父节点下建立子节点 Set nodx = TreeView1.Nodes.add(Text1.Text, tvwChild, "child" & J, _ Text2.Text, 3) Else '若不存在,则建立父节点和子节点 Set nodx = TreeView1.Nodes.add(, , Text1.Text, Text1.Text, 1) Set nodx = TreeView1.Nodes.add(Text1.Text, tvwChild, "child" & J, _ Text2.Text, 3) End If TreeView1.Refresh ElseIf Text1.Text = "" Then MsgBox "请输入父节点名称!", vbInformation, "警告!" '系统提示 ElseIf Text2.Text = "" Then MsgBox "请输入子节点名称!", vbInformation, "警告!" End If End SubPrivate Sub Command2_Click() For I = 1 To TreeView1.Nodes.Count TreeView1.Nodes(I).Expanded = True '展开所有节点 Next I End SubPrivate Sub Command3_Click() For I = 1 To TreeView1.Nodes.Count TreeView1.Nodes(I).Expanded = False '收起所有节点 Next I End SubPrivate Sub Command4_Click() TreeView1.Sorted = True '排列顺序 End SubPrivate Sub Command5_Click() If TreeView1.SelectedItem.Index <> 1 Then TreeView1.Nodes.Remove TreeView1.SelectedItem.Index '删除选定的节点 End If End SubPrivate Sub Command6_Click() End '退出程序 End SubPrivate Sub Form_Load() TreeView1.LineStyle = tvwTreeLines '在兄弟节点和父节点之间显示线 TreeView1.ImageList = ImageList1 '链接图像列 TreeView1.Style = tvwTreelinesPlusMinusPictureText '树状外观包含全部元素 Set nodx = TreeView1.Nodes.add(, , "蒲子明", "蒲子明", 1) '建立名称为"蒲子明"的父节点,选择索引为1的图像 Set nodx = TreeView1.Nodes.add("蒲子明", tvwChild, "child01", "收件箱", 3) '在"蒲子明"父节点下建立"收件箱"子节点,选择索引为3的图像 Set nodx = TreeView1.Nodes.add("蒲子明", tvwChild, "child02", "发件箱", 3) '在"蒲子明"父节点下建立"发件箱"子节点,选择索引为3的图像 CunZai = False End SubPrivate Sub TreeView1_Expand(ByVal Node As MSComctlLib.Node) Node.ExpandedImage = 2 '节点被展开时,选择索引为2的图像 End SubPrivate Sub TreeView1_NodeClick(ByVal Node As MSComctlLib.Node) If TreeView1.SelectedItem.Children = 0 Then '检查是否有子节点,0为无 For I = 1 To TreeView1.Nodes.Count If TreeView1.Nodes(I).Selected Then MsgBox "您选择的是:“" & TreeView1.Nodes(I).FullPath & "”子节点!" '系统提示 End If Next I End If End Sub'弹出菜单 Private Sub TreeView1_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single) If Button = vbRightButton Then If TreeView1.SelectedItem Is TreeView1.HitTest(x, y) Then Me.PopupMenu menuPopup End If End If End Sub'删除选定的节点 Private Sub cut_Click() If TreeView1.SelectedItem.Index <> 1 Then TreeView1.Nodes.Remove TreeView1.SelectedItem.Index End If End Sub 我现在的代码 大哥你看看啊
关键字 treeview 控件的用法 vb
If Button = vbRightButton Then
If TreeView1.SelectedItem Is TreeView1.HitTest(x, y) Then
menuPopupItem.Caption = TreeView1.SelectedItem.Text
Me.PopupMenu menuPopup
End If
End If
End Sub
2.右击treeview的时候 ,用PopupMenu方法弹出菜单
Private Sub TreeView1_MouseUp(Button As Integer, Shift As Integer, x As Single, Y As Single)
If Button <> 2 Then Exit Sub
' PopupMenu 菜单名称
End Sub
3.添加,删除,重命名,更换图标
TreeView1.Nodes.Add(relative, relationship, key, text, image, selectedimage)
TreeView1.Nodes.Remove (Index)
TreeView1.LabelEdit =tvwAutomatic
TreeView1.Nodes(Index).Image = "imagelist中的关键字或者序号"
Dim J As Integer
Dim nodx As Node
Dim CunZai As Boolean '定义变量
Private Sub Command1_Click()
If Text1.Text <> "" And Text2.Text <> "" Then '不允许建立零字节的父节点和子节点
CunZai = False
J = TreeView1.Nodes.Count
For I = 1 To TreeView1.Nodes.Count '检查新输入的父节点名称是否存在
If TreeView1.SelectedItem.Children > 0 Then
If Text1.Text = TreeView1.Nodes(I).Text Then CunZai = True
End If
Next I
If CunZai = True Then '若存在, 则在父节点下建立子节点
Set nodx = TreeView1.Nodes.Add(Text1.Text, tvwChild, "child" & J, _
Text2.Text, 3)
Else '若不存在,则建立父节点和子节点
Set nodx = TreeView1.Nodes.Add(, , Text1.Text, Text1.Text, 1)
Set nodx = TreeView1.Nodes.Add(Text1.Text, tvwChild, "child" & J, _
Text2.Text, 3)
End If
TreeView1.Refresh
ElseIf Text1.Text = "" Then MsgBox "请输入父节点名称!", vbInformation, "警告!"
'系统提示
ElseIf Text2.Text = "" Then MsgBox "请输入子节点名称!", vbInformation, "警告!"
End If
End SubPrivate Sub Command2_Click()
For I = 1 To TreeView1.Nodes.Count
TreeView1.Nodes(I).Expanded = True '展开所有节点
Next I
End SubPrivate Sub Command3_Click()
For I = 1 To TreeView1.Nodes.Count
TreeView1.Nodes(I).Expanded = False '收起所有节点
Next I
End SubPrivate Sub Command4_Click()
TreeView1.Sorted = True '排列顺序
End SubPrivate Sub Command5_Click()
If TreeView1.SelectedItem.Index <> 1 Then
TreeView1.Nodes.Remove TreeView1.SelectedItem.Index '删除选定的节点
End If
End SubPrivate Sub Command6_Click()
End '退出程序
End SubPrivate Sub Form_Load()
TreeView1.LineStyle = tvwTreeLines '在兄弟节点和父节点之间显示线
TreeView1.ImageList = ImageList1 '链接图像列
TreeView1.Style = tvwTreelinesPlusMinusPictureText
'树状外观包含全部元素
Set nodx = TreeView1.Nodes.Add(, , "蒲子明", "蒲子明", 1)
'建立名称为"蒲子明"的父节点,选择索引为1的图像
Set nodx = TreeView1.Nodes.Add("蒲子明", tvwChild, "child01", "收件箱", 3)
'在"蒲子明"父节点下建立"收件箱"子节点,选择索引为3的图像
Set nodx = TreeView1.Nodes.Add("蒲子明", tvwChild, "child02", "发件箱", 3)
'在"蒲子明"父节点下建立"发件箱"子节点,选择索引为3的图像
CunZai = False
End SubPrivate Sub TreeView1_Expand(ByVal Node As MSComctlLib.Node)
Node.ExpandedImage = 2 '节点被展开时,选择索引为2的图像
End SubPrivate Sub TreeView1_NodeClick(ByVal Node As MSComctlLib.Node)
If TreeView1.SelectedItem.Children = 0 Then '检查是否有子节点,0为无
For I = 1 To TreeView1.Nodes.Count
If TreeView1.Nodes(I).Selected Then
MsgBox "您选择的是:“" & TreeView1.Nodes(I).FullPath & "”子节点!"
'系统提示
End If
Next I
End If
End Sub
Private Sub TreeView1_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)
If Button = vbRightButton Then
If TreeView1.SelectedItem Is TreeView1.HitTest(x, y) Then
Me.PopupMenu menuPopup
End If
End If
End Sub'删除选定的节点
Private Sub mnut1_Click()
If TreeView1.SelectedItem.Index <> 1 Then
TreeView1.Nodes.Remove TreeView1.SelectedItem.Index
End If
End Sub
标题:等同于Command的Caption属性,就是用来显示菜单上的文字。
名称:等同于Command的Nane属性,指定菜单的名称。
索引:菜单数组的下标。
复选:以复选框的样式显示菜单。
有效:Enabled
可见:Visible
→按钮:选定的菜单项退一级
←按钮:选定的菜单项向上一级
↑按钮:选定的菜单项向上移动
↓按钮:选定的菜单项向下移动 先输入菜单第一项的标题"文件"和名称"file",按你的要求,程序运行时不显示,那么就把它的"可见"勾上。
再输入菜单第二项的标题"打开"和名称"open",因为它是在"文件"菜单的下一级,所以按一下"→按钮"
最后输入菜单第三项的标题"保存"和名称"save",不用按按"→按钮".确定完成菜单的编辑.
If TreeView1.SelectedItem.Index <> 1 Then
TreeView1.Nodes.Remove TreeView1.SelectedItem.Index
End If
End Sub
If TreeView1.SelectedItem.Index <> 1 Then TreeView1.Nodes.Remove TreeView1.SelectedItem.Index
End IfEnd Sub
我是从你的代码Private Sub Command5_Click()
If TreeView1.SelectedItem.Index <> 1 Then
TreeView1.Nodes.Remove TreeView1.SelectedItem.Index '删除选定的节点
End If
End Sub
改的这个代码没运行过吗?
出现对象变量或with块变量未设置
我上面的按钮可以运行啊
Private Sub TreeView1_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)
If Button = vbRightButton Then
If TreeView1.SelectedItem Is TreeView1.HitTest(x, y) Then
Me.PopupMenu menuPopup
End If
End If
End Sub这个代码加了吗?是加我这个吗?
Dim J As Integer
Dim nodx As Node
Dim CunZai As Boolean '定义变量
Private Sub Command1_Click()
If Text1.Text <> "" And Text2.Text <> "" Then '不允许建立零字节的父节点和子节点
CunZai = False
J = TreeView1.Nodes.Count
For I = 1 To TreeView1.Nodes.Count '检查新输入的父节点名称是否存在
If TreeView1.SelectedItem.Children > 0 Then
If Text1.Text = TreeView1.Nodes(I).Text Then CunZai = True
End If
Next I
If CunZai = True Then '若存在, 则在父节点下建立子节点
Set nodx = TreeView1.Nodes.add(Text1.Text, tvwChild, "child" & J, _
Text2.Text, 3)
Else '若不存在,则建立父节点和子节点
Set nodx = TreeView1.Nodes.add(, , Text1.Text, Text1.Text, 1)
Set nodx = TreeView1.Nodes.add(Text1.Text, tvwChild, "child" & J, _
Text2.Text, 3)
End If
TreeView1.Refresh
ElseIf Text1.Text = "" Then MsgBox "请输入父节点名称!", vbInformation, "警告!"
'系统提示
ElseIf Text2.Text = "" Then MsgBox "请输入子节点名称!", vbInformation, "警告!"
End If
End SubPrivate Sub Command2_Click()
For I = 1 To TreeView1.Nodes.Count
TreeView1.Nodes(I).Expanded = True '展开所有节点
Next I
End SubPrivate Sub Command3_Click()
For I = 1 To TreeView1.Nodes.Count
TreeView1.Nodes(I).Expanded = False '收起所有节点
Next I
End SubPrivate Sub Command4_Click()
TreeView1.Sorted = True '排列顺序
End SubPrivate Sub Command5_Click()
If TreeView1.SelectedItem.Index <> 1 Then
TreeView1.Nodes.Remove TreeView1.SelectedItem.Index '删除选定的节点
End If
End SubPrivate Sub Command6_Click()
End '退出程序
End SubPrivate Sub Form_Load()
TreeView1.LineStyle = tvwTreeLines '在兄弟节点和父节点之间显示线
TreeView1.ImageList = ImageList1 '链接图像列
TreeView1.Style = tvwTreelinesPlusMinusPictureText
'树状外观包含全部元素
Set nodx = TreeView1.Nodes.add(, , "蒲子明", "蒲子明", 1)
'建立名称为"蒲子明"的父节点,选择索引为1的图像
Set nodx = TreeView1.Nodes.add("蒲子明", tvwChild, "child01", "收件箱", 3)
'在"蒲子明"父节点下建立"收件箱"子节点,选择索引为3的图像
Set nodx = TreeView1.Nodes.add("蒲子明", tvwChild, "child02", "发件箱", 3)
'在"蒲子明"父节点下建立"发件箱"子节点,选择索引为3的图像
CunZai = False
End SubPrivate Sub TreeView1_Expand(ByVal Node As MSComctlLib.Node)
Node.ExpandedImage = 2 '节点被展开时,选择索引为2的图像
End SubPrivate Sub TreeView1_NodeClick(ByVal Node As MSComctlLib.Node)
If TreeView1.SelectedItem.Children = 0 Then '检查是否有子节点,0为无
For I = 1 To TreeView1.Nodes.Count
If TreeView1.Nodes(I).Selected Then
MsgBox "您选择的是:“" & TreeView1.Nodes(I).FullPath & "”子节点!"
'系统提示
End If
Next I
End If
End Sub'弹出菜单
Private Sub TreeView1_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)
If Button = vbRightButton Then
If TreeView1.SelectedItem Is TreeView1.HitTest(x, y) Then
Me.PopupMenu menuPopup
End If
End If
End Sub'删除选定的节点
Private Sub cut_Click()
If TreeView1.SelectedItem.Index <> 1 Then
TreeView1.Nodes.Remove TreeView1.SelectedItem.Index
End If
End Sub
我现在的代码 大哥你看看啊