VB中列表框List赋值并在文本框输出

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VB中列表框List赋值并在文本框输出相关的知识,希望对你有一定的参考价值。

列表框1中有一些服装、点击选中按钮移动到列表框2,文本框显示出列表框2的商品的价格、如果添加两件商品,文本框则显示列表框2中的两件商品的价钱的总和、求……
Dim Player(0 To 2) ' 说明两个数组的大小。
Dim Salary(0 To 2)
Dim a As Long
Dim b As Long
Dim c As Long
Dim sum As String
Private Sub Command1_Click()
List2.AddItem List1.List(List1.ListIndex)
List1.RemoveItem List1.ListIndex
End Sub

Private Sub Form_Load()
Dim I ' 声明变量。
AutoSize = True
Player(0) = "背带裤" ' 在数组中输入数据。
Player(1) = "毛衣"
Player(2) = "卫衣"
Salary(0) = "165"
Salary(1) = "135"
Salary(2) = "75"
a = Salary(0)
b = Salary(1)
c = Salary(2)
For I = 0 To 2 ' 在列表中添加名字。
List1.AddItem Player(I)
Next I
List1.ListIndex = 0 ' 显示列表中的第一项。
End Sub

Private Sub Combo1_Click()
End Sub

Private Sub List2_Click()
sum = a + b + c
' 显示名字所对应的价格。
Text1.Text = sum + "元"
End Sub
这样写只能输入三个的总和、怎么达到输入一个商品只显示那个商品的、求啊……有20分

看来一直没人为你解决,我给你将代码修改了一下,你复制过去运行即可

你的窗体上应该具备以下4个控件:List1、List1、Text1和Command1  【属性默认】

 

Dim Player(0 To 2) As String  ' 说明两个数组的大小。

Dim Salary(0 To 2) As Single

Dim sum As Single

Private Sub Command1_Click()

  Dim i As Long, j As Long  ' 声明变量。

  If List1.ListCount = 0 Then Exit Sub

  If List1.ListIndex < 0 Then

    MsgBox "请在列表框1中选择一个商品"

    Exit Sub

  End If

  List2.AddItem List1.List(List1.ListIndex)

  List1.RemoveItem List1.ListIndex

  If List2.ListCount > 0 Then

    sum = 0

    For i = 0 To List2.ListCount - 1

      For j = 0 To 2

        If List2.List(i) = Player(j) Then sum = sum + Salary(j)

      Next j

    Next i

  Else

    Text1.Text = "0元"

  End If

  Text1.Text = CStr(sum) + "元"  ' 显示名字所对应的价格。

End Sub

Private Sub Form_Load()

  Dim i As Long  ' 声明变量。

  AutoSize = True

  Player(0) = "背带裤" ' 在数组中输入数据。

  Player(1) = "毛衣"

  Player(2) = "卫衣"

  Salary(0) = 165

  Salary(1) = 135

  Salary(2) = 75

  For i = 0 To 2 ' 在列表中添加名字。

    List1.AddItem Player(i)

  Next i

  List1.ListIndex = 1 ' 显示列表中的第一项。

End Sub 

 

参考技术A 建一个TXT文件,名为:ShangPin.txt,内容为:
40寸彩电,4800
夏普空调,3680
电风扇,182
自行车,555
新建工程,保存到某文件夹,把上面的TXT文件也复制到工程文件夹里。
在窗体上添加2个列表框,1个文本框,把列表框1的Style属性设置为1。
代码如下:

Option Explicit
Private SPM() As String
Private DJ() As Single

Private Sub Form_Load()
'读取文件信息
Dim MyStr As String
Dim n As Integer
Dim L As Integer
List1.Clear
n = -1
Open App.Path & "\ShangPin.txt" For Input As #1 '以读的方式打开文件
Do While Not EOF(1) ' 循环至文件尾
Line Input #1, MyStr '读入一行
n = n + 1
ReDim Preserve SPM(n) As String
ReDim Preserve DJ(n) As Single
L = InStr(MyStr, ",")
SPM(n) = Left(MyStr, L - 1)
List1.AddItem SPM(n)
MyStr = Right(MyStr, Len(MyStr) - L)
DJ(n) = MyStr
Loop
Close #1 ' 关闭文件。
List2.Clear
End Sub

Private Sub List1_Click()
Dim i As Integer
Dim Total As Single
Total = 0
List2.Clear
For i = 0 To List1.ListCount - 1
If List1.Selected(i) Then
Total = Total + DJ(i)
List2.AddItem List1.List(i)
End If
Next i
Text1.Text = CStr(Total)
End Sub追问

高手可以的话你帮我解决上面的问题吧……

本回答被提问者采纳

谁知道VB中列表框这几个属性的区别

list.list
list.listindex
list.index
list.text

1.
List,是ListBox中所有的列表集合,是一个数组。
例如List1.List(0)就代表List1中的第一个列表项

2.
ListIndex 是listBox中当前激活的(高亮的,就是蓝色标出的)列表项的Index(位置)。-1表示没有激活的列表项

例如Msgbox List1.List(List1.ListIndex)
这句作用是显示激活列表项的文字(没有激活项会报错)

3.Index是控件都有的,一般是空白。如果非空白,则代表这个控件是一个控件数组,调用要用类似于List1(0)这样调用

4.Text代表ListBox当前选中项目文本,与Lit1.List(List1.ListIndex)效果一样
参考技术A list是个数组,可以访问所有的项目,而text表示当前选中项目的文字.
list2.additem
list1.list(k)
是把
list1中的
k位置上的文字
加入list2
list2.additem
list1.text
是把list1
选中的文字
加入list2,
不一样的
参考技术B Property List(Integer) As String
VB.ListBox 的成员
返回/设置控件的列表部分中包含的项。

Property ListCount As Integer
只读
VB.ListBox 的成员
返回控件的列表部分中的项目数。

Property Index As Integer
只读
VB.ListBox 的成员
返回/设置控件在控件数组中的标识号。

Property ListIndex As Integer
VB.ListBox 的成员
返回/设置该控件中当前选定项目的索引。

Property Text As String
VB.ListBox 的成员
返回/设置控件中包含的文本。
参考技术C 看 msdn 吧

祝你顺利

以上是关于VB中列表框List赋值并在文本框输出的主要内容,如果未能解决你的问题,请参考以下文章

急!如何VB文件列表框双击文件名在文本框中显示文件内容?

安卓开发 listview中给指定行文本框赋值的问题

vb comboBOx和listBox两个属性有啥不同?

VB6.0中,日期时间控件不允许为空时,采用文本框与日期时间控件相互替换赋值(解决方案)

VB中,让文本框文字居中的设置,怎么搞?

易语言循环取超级列表框被选中项目到指定变量