一个TREEVIEW,上面有好多节点。
点击一个,如何在RICHTEXTBOX空件中显示相应的内容???
点一次就换成这个所点节点的内容
就像下图中
http://xrl.lzu.edu.cn/bbs2/uploadImages/200341315593084485.jpg
点击一个,如何在RICHTEXTBOX空件中显示相应的内容???
点一次就换成这个所点节点的内容
就像下图中
http://xrl.lzu.edu.cn/bbs2/uploadImages/200341315593084485.jpg
然后根据该节点的内容搜索显示的内容
例如
If Node.Key = "M" Then
Set rs = New ADODB.Recordset
rs.Open "select * from tb_msdn where fd_title='" & Node.Text & "'", conn, adOpenKeyset, adLockOptimistic
end if
能不能讲讲Node.Key 返回什么吗?
Dim Node1 As Node
Dim Node2 As Node
Dim Node3 As Node
Dim i As Integer
Dim j As Integer
Dim k As Integer
Dim imgx As ListImage
Set imgx = ImageList1.ListImages.Add(, , LoadPicture("c:\1.ico"))
Set imgx = ImageList1.ListImages.Add(, , LoadPicture("c:\2.ico"))
TreeView1.ImageList = ImageList1
' For some convenience...
TreeView1.HideSelection = False
TreeView1.LabelEdit = tvwManual
TreeView1.LineStyle = tvwRootLines
' Fill up the treeview...
Set Node1 = TreeView1.Nodes.Add(, , , "根目录", 1)
Set Node2 = TreeView1.Nodes.Add(Node1.Index, tvwChild, , "子目录1", 2)
Set Node2 = TreeView1.Nodes.Add(Node1.Index, tvwChild, , "子目录2", 2)
Set Node2 = TreeView1.Nodes.Add(Node1.Index, tvwChild, , "子目录3", 2)
Set Node1 = TreeView1.Nodes.Add(, , , "根目录", 1)
Set Node2 = TreeView1.Nodes.Add(Node1.Index, tvwChild, , "子目录", 2)
Set Node1 = TreeView1.Nodes.Add(, , , "根目录", 1)
Set Node2 = TreeView1.Nodes.Add(Node1.Index, tvwChild, , "子目录", 2)
Set Node1 = TreeView1.Nodes.Add(, , , "根目录", 1)
Set Node2 = TreeView1.Nodes.Add(Node1.Index, tvwChild, , "子目录", 2)
Set Node1 = TreeView1.Nodes.Add(, , , "根目录", 1)
Set Node2 = TreeView1.Nodes.Add(Node1.Index, tvwChild, , "子目录", 2)
Set Node1 = TreeView1.Nodes.Add(, , , "根目录", 1)
Set Node2 = TreeView1.Nodes.Add(Node1.Index, tvwChild, , "子目录", 2)
Set Node1 = TreeView1.Nodes.Add(, , , "根目录", 1)
Set Node2 = TreeView1.Nodes.Add(Node1.Index, tvwChild, , "子目录", 2)
Set Node1 = TreeView1.Nodes.Add(, , , "根目录", 1)
Set Node2 = TreeView1.Nodes.Add(Node1.Index, tvwChild, , "子目录", 2)
Node1.Expanded = False
' Set the labels with the first root Node's text.
' (a NodeClick event is not generated even though the first
' node in the TV is selected when the TV first appears).End SubPrivate Sub TreeView1_NodeClick(ByVal Node As MSComctlLib.Node)
Dim FileNumber
Dim Lstr As String
FileNumber = FreeFile ' 取得未使用的档案代码。
Open "c:\1.txt" For Input As #FileNumber
Do While Not EOF(FileNumber)
Line Input #FileNumber, Lstr
RichTextBox1.Text = RichTextBox1.Text + Lstr + Chr(13) + Chr(10)
Loop
Close #FileNumber
End Sub有哪位高手,帮我看看我应把代码
If Node.Key = "M" Then
Set rs = New ADODB.Recordset
rs.Open "select * from tb_msdn where fd_title='" & Node.Text & "'", conn, adOpenKeyset, adLockOptimistic
end if
加在哪里???
怎么改?
可以先定义一个字符串变量如astr
在object_NodeClick事件下面
dim astr as string
astr=node.text
然后用一个Select语句
select case astr
case str1
执行str1对应的语句
case str2
执行str1对应的语句
case ...
case else
end select
写入Key后就可以在NodeClike事件中来判断它的值了。
Private Sub Command1_Click()
Dim Node1 As Nodes
Me.TreeView1.Nodes.Add , , , "根目录"
Me.TreeView1.Nodes.Add 1, tvwChild, "M1", "子目录1"
Me.TreeView1.Nodes.Add 1, tvwChild, "M2", "子目录2"
Me.TreeView1.Nodes.Add 1, tvwChild, "M3", "子目录3"
Me.TreeView1.Nodes.Item(1).Expanded = True
End SubPrivate Sub TreeView1_NodeCheck(ByVal Node As MSComctlLib.Node)End SubPrivate Sub TreeView1_NodeClick(ByVal Node As MSComctlLib.Node)
MsgBox Mid(Node.Key, 1, 1)
End Sub
非常简单的一段,自己看看,不懂再说!我想你应该明白了。
KEY值加在哪???
就拿下面这句话说
Set Node2 = TreeView1.Nodes.Add(Node1.Index, tvwChild, , "子目录1", 2)
就加在tvwChild后面的阿。key值不能够重复的哦!
Dim Node1 As Node
Dim Node2 As Node
Dim Node3 As Node
Dim i As Integer
Dim j As Integer
Dim k As Integer
Dim imgx As ListImage
Set imgx = ImageList1.ListImages.Add(, , LoadPicture("c:\1.ico"))
Set imgx = ImageList1.ListImages.Add(, , LoadPicture("c:\2.ico"))
TreeView1.ImageList = ImageList1
' For some convenience...
TreeView1.HideSelection = False
TreeView1.LabelEdit = tvwManual
TreeView1.LineStyle = tvwRootLines
' Fill up the treeview...
Set Node1 = TreeView1.Nodes.Add(, , , "根目录", 1)
Set Node2 = TreeView1.Nodes.Add(Node1.Index, tvwChild, , "子目录1", 2)
Set Node2 = TreeView1.Nodes.Add(Node1.Index, tvwChild, , "子目录2", 2)
Set Node1 = TreeView1.Nodes.Add(, , , "根目录", 1)
Set Node2 = TreeView1.Nodes.Add(Node1.Index, tvwChild, , "子目录", 2)
Set Node1 = TreeView1.Nodes.Add(, , , "根目录", 1)
Set Node2 = TreeView1.Nodes.Add(Node1.Index, tvwChild, , "子目录", 2)
Set Node1 = TreeView1.Nodes.Add(, , , "根目录", 1)
Set Node2 = TreeView1.Nodes.Add(Node1.Index, tvwChild, , "子目录", 2)
Set Node1 = TreeView1.Nodes.Add(, , , "根目录", 1)
Set Node2 = TreeView1.Nodes.Add(Node1.Index, tvwChild, , "子目录", 2)
Set Node1 = TreeView1.Nodes.Add(, , , "根目录", 1)
Set Node2 = TreeView1.Nodes.Add(Node1.Index, tvwChild, , "子目录", 2)
Set Node1 = TreeView1.Nodes.Add(, , , "根目录", 1)
Set Node2 = TreeView1.Nodes.Add(Node1.Index, tvwChild, , "子目录", 2)
Set Node1 = TreeView1.Nodes.Add(, , , "根目录", 1)
Set Node2 = TreeView1.Nodes.Add(Node1.Index, tvwChild, , "子目录", 2)
Node1.Expanded = False
' Set the labels with the first root Node's text.
' (a NodeClick event is not generated even though the first
' node in the TV is selected when the TV first appears).End SubPrivate Sub TreeView1_NodeCheck(ByVal Node As MSComctlLib.Node)End SubPrivate Sub TreeView1_NodeClick(ByVal Node As MSComctlLib.Node)
Dim astr As String
astr = Node.Text
'然后用一个Select语句
Select Case astr
Case "子目录1"
Dim FileNumber
Dim Lstr As String
FileNumber = FreeFile ' 取得未使用的档案代码。
Open "c:\1.txt" For Input As #FileNumber
Do While Not EOF(FileNumber)
Line Input #FileNumber, Lstr
RichTextBox1.Text = RichTextBox1.Text + Lstr + Chr(13) + Chr(10)
Loop
Close #FileNumber
Case "子目录2"
Dim FileNumber1
Dim Lstr1 As String
FileNumber1 = FreeFile ' 取得未使用的档案代码。
Open "c:\2.txt" For Input As #FileNumber1
Do While Not EOF(FileNumber1)
Line Input #FileNumber1, Lstr1
RichTextBox1.Text = RichTextBox1.Text + Lstr1 + Chr(13) + Chr(10)
Loop
Close #FileNumber1
Case Else
End Select
End Sub这是我刚改的
可是在打开第一个之后,我如果接着打开第二个文件,它是接着第一个的
也就是说,在一个RICHTEXTBOX中,一下显示了两篇文章。。
我如果想在打开第二篇文章后,清除第一篇,只显示第二篇
我要怎么做???
可是在打开第一个之后,我如果接着打开第二个文件,它是接着第一个的
也就是说,在一个RICHTEXTBOX中,一下显示了两篇文章。。
我如果想在打开第二篇文章后,清除第一篇,只显示第二篇
我要怎么做???
在 Treeview 控件的 Nodes 集合中添加一个 Node 对象。语法object.Add(relative, relationship, key, text, image, selectedimage)Add 方法的语法包含下面部分:部分 描述
object 必需的。对象表达式,其值是“应用于”列表中的一个对象
relative 可选的。已存在的 Node 对象的索引号或键值。新节点与已存在的节点间的关系,可在下一个参数 relationship 中找到。
relationship 可选的。指定的 Node 对象的相对位置,如设置值中所述。
key 可选的。唯一的字符串,可用于用 Item 方法检索 Node。
text 必需的。在 Node 中出现的字符串。
image 可选的。在关联的 ImageList 控件中的图像的索引。
selectedimage 可选的。在关联的 ImageList 控件中的图像的索引,在 Node 被选中时显示。
设置值relationship 的设置值是:常数 值 描述
tvwFirst 0 首的节点。该 Node 和在 relative 中被命名的节点位于同一层,并 位于所有同层节点之前。
tvwLast 1 最后的节点。该 Node 和在 relative 中被命名的节点位于同一层,并 位于所有同层节点之后。任何连续地添加的节点可能位于最后添加的节点之后
tvwNext 2 (缺省)下一个节点。该 Node 位于在 relative 中被命名的节点之后。
tvwPrevious 3 前一个节点。该 Node 位于在 relative 中被命名的节点之前。
tvwChild 4 (缺省)子节点。该 Node 成为在 relative 中被命名的
节点的子节点。
注意 如果在 relative 中没有被命名的 Node 对象,则新节点被放在节点顶层的最后位置。说明Nodes 集合是一个基于 1 的集合。在添加 Node 对象时,它被指派一个索引号,该索引号被存储在 Node 对象的 Index 属性中。这个最新成员的 Index 属性值就是 Node 集合的 Count 属性的值。因为 Add 方法返回对新建立的 Node 对象的引用,所以使用这个引用来设置新 Node 的属性十分方便。以下例子添加几个具有相同属性的 Node 对象:Dim nodX As Node '声明对象变量。
Dim I as Integer '声明计数器变量。
For I = 1 to 4
Set nodX = TreeView1.Nodes.Add(,,,"Node " & Cstr(i))
'使用引用来设置其它属性,如 Enabled。
nodX.Enabled = True
'把图像属性设置为在关联的 ImageList 中的图像 3。
nodX.ExpandedImage = 3
Next I
richtextbox1.text=""
???
可是我不知道应该加在哪儿?
你真是个热心人
我是兰大的学生,如果想和我做个朋友。
请加我!!!
QQ:120775380
期待着你!
就在NodeClike事件中阿。
建议你不要学vb了。