vb高手进来,高分悬赏

2024-11-17 19:25:07
推荐回答(5个)
回答(1):

我的用起来比楼上的方便 楼主可以少输入很多代码并且很容易维护
可以采用文件读写方式,文件读写和内置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描述

回答(2):

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

回答(3):

在窗体添加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分!!

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

回答(4):

楼上几位老兄写的很好,但是不好维护,如果你想添加新的项目,那你就要该代码,最好还是把这些项目都写进 数据库。

回答(5):

你这样把所有信息都写进代码,代码多不说,还不方便维护。
不如做个数据库了。