vb高手进来,高分悬赏

简单说,我想设计一个报告系统,包括一个combo的母目录,一个list的子目录,一个子目录对应的文本内容。比如说:母目录:肝脏、胆囊、胰腺……“肝脏”下的子目录:肝癌、肝硬化、肝破裂……,“胆囊”子目录:胆囊结石、胆囊癌、胆囊炎……文本框内则是对子目录的描述,如当我点击“肝癌”就在文本框中显示“肝脏增大失常态……”
把编程的语句写给我就行了,里面的内容我自己添加!
十万火急!!!谢谢大家,回答满意的再加100分!!

我的用起来比楼上的方便 楼主可以少输入很多代码并且很容易维护
可以采用文件读写方式,文件读写和内置2选1
Dim GroupItems() As String
Dim SubItems() As String 'SubItems(X)中第X个母目录
Dim p() As String

Private Sub Combo1_Click()
Dim k() As String, i As Integer
p = Split(SubItems(Combo1.ListIndex), "|")

List1.Clear
For i = 0 To UBound(p)
k = Split(p(i), ",")
List1.AddItem k(0)
Next
End Sub

Private Sub Form_Load()
'-----------------------------------------------------
'以下是非文件版本 你可以和下下面的文件版本二选一
GroupItems = Split("肝脏|胆囊|胰腺", "|") '母目录,注意顺序
ReDim SubItems(UBound(GroupItems))

SubItems(0) = "肝癌,肝癌描述,这是描述中的逗号(全角)\n现在换行了,现在是\\n符号|肝硬化,肝硬化描述|肝破裂,肝破裂描述" '第一个母目录的子目录
SubItems(1) = "胆囊结石,胆囊结石描述|胆囊癌,胆囊癌描述|胆囊炎,胆囊炎描述" '对应第二个母目录
SubItems(2) = "胰腺1,胰腺1描述|胰腺2,胰腺2描述"
'SubItems(X)="XXX|XXX|XXX|XXX|XXX....."用|分割每一个子项目,其中用","隔开名称和描述(半角逗号),数量不限,换行为\n符号,如果要显示\n则输入\\n。

'结束
'-----------------------------------------------------

'-----------------------------------------------------
'以下是文件版本 你可以和上面版本二选一
'Dim lf As String, i As Integer
'Open App.Path & "\list.dat" For Input As #1 '文件是程序目录下的list.dat
' Line Input #1, lf
' GroupItems = Split(lf, "|")
' ReDim SubItems(UBound(GroupItems))
'
' For i = 0 To UBound(GroupItems)
' Line Input #1, SubItems(i)
' Next
'Close #1

'结束
'-----------------------------------------------------
Dim i As Integer
For i = 0 To UBound(GroupItems)
Combo1.AddItem GroupItems(i)
Next
Combo1.ListIndex = 0
End Sub

Private Sub List1_Click()
Dim k() As String, i As Integer
k = Split(p(List1.ListIndex), ",")
Debug.Print k(1)
k(1) = Replace(k(1), "\\", "$$$$$$$$$$$$$$$$")
k(1) = Replace(k(1), "\n", vbCrLf)
Text1.Text = Replace(k(1), "$$$$$$$$$$$$$$$$", "\")
End Sub

如果使用文件,文件保存在程序目录下的list.dat内(记事本编写即可)
内容是类似下面的:
肝脏|胆囊|胰腺
肝癌,肝癌描述,这是描述中的逗号(全角)\n现在换行了,现在是\\n符号|肝硬化,肝硬化描述|肝破裂,肝破裂描述
胆囊结石,胆囊结石描述|胆囊癌,胆囊癌描述|胆囊炎,胆囊炎描述
胰腺1,胰腺1描述|胰腺2,胰腺2描述
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-08-06
sub combobox1.textchanged
if combobox1.text=“肝脏”
list1.item.clear
list1.item.add("肝癌")
....................
end sub
sub list1.selecteditemchanged
select case list1.selecteditem
case "肝癌"
textbox1.text="肝癌有关……"
case "肝硬化"
textbox1.text="肝硬化有关……"
…………………………………………
end select
end sub
第2个回答  2009-08-06
在窗体添加combo1、list1和text1三个控件后将下面的代码加入就可以了,其它数据自己添加,有问题消息留言。

Private Sub Combo1_Click()
List1.Clear
With List1
Select Case Combo1.Text
Case "肝脏"
.AddItem "肝癌"
.AddItem "肝硬化"
.AddItem "肝破裂"
Case "胆囊"
.AddItem "胆囊结石"
.AddItem "胆囊癌"
.AddItem "胆囊炎"
Case "胰腺"
.AddItem "胰腺1"
.AddItem "胰腺2"
.AddItem "胰腺3"
End Select
End With
End Sub

Private Sub Form_Load()
Text1.Text = ""
With Combo1
.AddItem "肝脏"
.AddItem "胆囊"
.AddItem "胰腺"
.Text = ""
End With
End Sub

Private Sub List1_Click()
With List1
Select Case List1.Text
Case "肝癌"
Text1.Text = "肝脏增大失常态……11111"
Case "肝硬化"
Text1.Text = "肝脏增大失常态……22222"
Case "肝破裂"
Text1.Text = "肝脏增大失常态……33333"
End Select
End With
End Sub

============================

回答满意的再加100分!!

======================
第3个回答  2009-08-06
楼上几位老兄写的很好,但是不好维护,如果你想添加新的项目,那你就要该代码,最好还是把这些项目都写进 数据库。
第4个回答  2009-08-06
你这样把所有信息都写进代码,代码多不说,还不方便维护。
不如做个数据库了。
相似回答