VB中组合框列表如何交换?
将列表中最小值和第一个交换,最大值和最后一个交换均为数字字符为什么我编的只交换第一个和最后一个?帮忙检查一下PrivateSubCommand1_Click()DimMi...
将列表中最小值和第一个交换,最大值和最后一个交换
均为数字字符
为什么我编的只交换第一个和最后一个?帮忙检查一下
Private Sub Command1_Click()
Dim Min%, iMin%, Max%, iMax%
Max = Combo1.List(0)
iMax = 0
Min = Combo1.List(0)
iMin = 0
For i = 0 To ListCount - 1
If Val(Combo1.List(i)) > Max Then Max = Val(Combo1.List(i)): iMax = i
Next i
t = Combo1.List(Combo1.ListCount - 1): Combo1.List(Combo1.ListCount - 1) = Combo1.List(iMax): Combo1.List(iMax) = t
For j = 0 To ListCount - 1
If Val(Combo1.List(j)) < Min Then Min = Combo1.List(j): iMin = j
Next j
k = Combo1.List(0): Combo1.List(0) = Combo1.List(iMin): Combo1.List(iMin) = k
End Sub 展开
均为数字字符
为什么我编的只交换第一个和最后一个?帮忙检查一下
Private Sub Command1_Click()
Dim Min%, iMin%, Max%, iMax%
Max = Combo1.List(0)
iMax = 0
Min = Combo1.List(0)
iMin = 0
For i = 0 To ListCount - 1
If Val(Combo1.List(i)) > Max Then Max = Val(Combo1.List(i)): iMax = i
Next i
t = Combo1.List(Combo1.ListCount - 1): Combo1.List(Combo1.ListCount - 1) = Combo1.List(iMax): Combo1.List(iMax) = t
For j = 0 To ListCount - 1
If Val(Combo1.List(j)) < Min Then Min = Combo1.List(j): iMin = j
Next j
k = Combo1.List(0): Combo1.List(0) = Combo1.List(iMin): Combo1.List(iMin) = k
End Sub 展开
3个回答
展开全部
不知道你为什么要循环两次..
你循环一次,把最大的和最小的都找出来,循环完毕直接交换不就得了么
Private Sub Command1_Click()
Dim Min%, iMin%, Max%, iMax%
Max = Combo1.List(0)
iMax = 0
Min = Combo1.List(0)
iMin = 0
Dim i As Integer
'一个循环分别找出最大数的index,和最小数所在的index
For i = 0 To Combo1.ListCount - 1
If Val(Combo1.List(i)) > Max Then Max = Val(Combo1.List(i)): iMax = i
If Val(Combo1.List(i)) < Min Then Min = Val(Combo1.List(i)): iMin = i
Next i
'最小值和第一个交换
Dim tmp
tmp = Combo1.List(0)
Combo1.List(0) = Combo1.List(iMin)
Combo1.List(iMin) = tmp
'最大值和最后一个交换
tmp = Combo1.List(Combo1.ListCount - 1)
Combo1.List(Combo1.ListCount - 1) = Combo1.List(iMax)
Combo1.List(iMax) = tmp
End Sub
你循环一次,把最大的和最小的都找出来,循环完毕直接交换不就得了么
Private Sub Command1_Click()
Dim Min%, iMin%, Max%, iMax%
Max = Combo1.List(0)
iMax = 0
Min = Combo1.List(0)
iMin = 0
Dim i As Integer
'一个循环分别找出最大数的index,和最小数所在的index
For i = 0 To Combo1.ListCount - 1
If Val(Combo1.List(i)) > Max Then Max = Val(Combo1.List(i)): iMax = i
If Val(Combo1.List(i)) < Min Then Min = Val(Combo1.List(i)): iMin = i
Next i
'最小值和第一个交换
Dim tmp
tmp = Combo1.List(0)
Combo1.List(0) = Combo1.List(iMin)
Combo1.List(iMin) = tmp
'最大值和最后一个交换
tmp = Combo1.List(Combo1.ListCount - 1)
Combo1.List(Combo1.ListCount - 1) = Combo1.List(iMax)
Combo1.List(iMax) = tmp
End Sub
展开全部
我汗,你写的本来就时只找出了最大,和最小,然后把最大放最后,最小放最前。你是不是想从小到大排序,想排序就要有算法哦,冒泡法,快速排序都可以考虑,去书上找找,这是基本哦
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
①private
sub
combo1_keypress
'keypress指的是当键盘键按下时
keyascii
= 13
'当keyascii为13,就是按回车时,回车的编号是13
②请翻译下这两句什么意思。
for
i
=
o
to
combo1.listcount
-
1
从第一个下拉内容到最后一个,
combo1.text
=
combo1.list(i)
把下拉内容显示到组合框的文件框部分.
sub
combo1_keypress
'keypress指的是当键盘键按下时
keyascii
= 13
'当keyascii为13,就是按回车时,回车的编号是13
②请翻译下这两句什么意思。
for
i
=
o
to
combo1.listcount
-
1
从第一个下拉内容到最后一个,
combo1.text
=
combo1.list(i)
把下拉内容显示到组合框的文件框部分.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询