我的用起来比楼上的方便 楼主可以少输入很多代码并且很容易维护
可以采用文件读写方式,文件读写和内置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描述
温馨提示:答案为网友推荐,仅供参考