VB组合框
窗体上建立一个简单组合框,在组合框的文本框输入数字字符,按回车键后加入到组合框的列表框内,如图E.8所示;单击“交换”按钮,将列表框中最小值项目和第0个项目交换;最大值与...
窗体上建立一个简单组合框,在组合框的文本框输入数字字符,按回车键后加入到组合框的列表框内,如图E.8所示;单击“交换”按钮,将列表框中最小值项目和第0个项目交换;最大值与最后项目交换,如图E.9所示。
图E.8: 输入数字数据
图E.9: 交换后结果
提示:
① 只能输入数字,Combo1_KeyPress事件通过如下代码实现:
Select Case KeyAscii
Case 48 to 57,13 '0~9数字和回车键为合法数据
Case Else '否则为非法数据,去除非法字符
KeyAscii=0
End Select
② 求最大值和最小值必须声明4个变量:如Min、iMin、Max、iMax分别存放最小值、最小值下标、最大值和最大值下标,并将列表框中低0个项目作为上述4个变量的初值。
③ 按照求最大值和最小值的方法,在组合框中找最小值和最大值,并获得最小值和最大值下标;注意比较时要用Val函数,否则作为字符串比较。
④ 将组合框的第0项与最小值交换、最大值与最后项交换。例,最大值与最后项交换的代码如下:
t=Combo1.List(Combo1.ListCount-1)
Combo1.List(Combo1.ListCount-1)= Combo1.List(iMax)
Combo1.List(iMax)= t 展开
图E.8: 输入数字数据
图E.9: 交换后结果
提示:
① 只能输入数字,Combo1_KeyPress事件通过如下代码实现:
Select Case KeyAscii
Case 48 to 57,13 '0~9数字和回车键为合法数据
Case Else '否则为非法数据,去除非法字符
KeyAscii=0
End Select
② 求最大值和最小值必须声明4个变量:如Min、iMin、Max、iMax分别存放最小值、最小值下标、最大值和最大值下标,并将列表框中低0个项目作为上述4个变量的初值。
③ 按照求最大值和最小值的方法,在组合框中找最小值和最大值,并获得最小值和最大值下标;注意比较时要用Val函数,否则作为字符串比较。
④ 将组合框的第0项与最小值交换、最大值与最后项交换。例,最大值与最后项交换的代码如下:
t=Combo1.List(Combo1.ListCount-1)
Combo1.List(Combo1.ListCount-1)= Combo1.List(iMax)
Combo1.List(iMax)= t 展开
2个回答
展开全部
Private Sub Combo1_KeyPress(KeyAscii As Integer)
'① 只能输入数字
Select Case KeyAscii
Case 48 To 57, 13 '0~9数字和回车键为合法数据
If KeyAscii = 13 Then '如果回车则添加一笔
Combo1.AddItem Combo1.Text
End If
Case Else '否则为非法数据,去除非法字符
KeyAscii = 0 '0值意思就是除了上一个Case里数字与回车放行,其他全部在此拦截
End Select
End Sub
Private Sub Command1_Click()
Dim Min As Integer, iMin As Integer
Dim Max As Integer, iMax As Integer
Dim t As Integer
'②为了运算能正确做比较,这里的值先设置相反。
Min = 32767 '这里写个大值,不超过Integer限定的32767
Max = 0 '这里写个小值
For t = 0 To Combo1.ListCount - 1 Step 1
'③ 开始循环取出每一个值跟 Min、Max做比较
'如果取出的值比Max大(Max就记录它)
If Max < Val(Combo1.List(t)) Then
Max = Val(Combo1.List(t))
iMax = t '与Max同步记录位置
End If
'如果取出的值比Min小(Min就记录它)
If Min > Val(Combo1.List(t)) Then
Min = Val(Combo1.List(t))
iMin = t '与Min同步记录位置
End If
Next t
' t变量刚刚是做循环用途,底下开始的运行作为交换值的用途
'循环完毕,最小值、最小值下标、最大值和最大值下标已经完成赋值
'开始依照④要求,先做组合框的第0项与最小值交换
t = Val(Combo1.List(0))
Combo1.List(0) = Val(Combo1.List(iMin))
ombo1.List(iMin) = t
'开始依照④要求,最大值与最后项交换(照抄前添加必要的Val函数)
t = Val(Combo1.List(Combo1.ListCount - 1))
Combo1.List(Combo1.ListCount - 1) = Val(Combo1.List(iMax))
Combo1.List(iMax) = t
End Sub
1.在窗体里添加一个Combo1然后到Text属性清空Combo1,属性Style设置为1 Simple Combo,然后用鼠标把控件高度拉开。继续到List属性里按照顺序填入图形内指定的值。再把控件的高度宽度调整到适合即可。
2.添加一个命令按钮Command1,到Caption属性改为【交换】文字,可以到Font里面设置文字大小。
3.把窗体的布局依照图片位置调整一下就全部OK了
'说明写的够详细了,如果是作业,就把文字说明删掉些
'① 只能输入数字
Select Case KeyAscii
Case 48 To 57, 13 '0~9数字和回车键为合法数据
If KeyAscii = 13 Then '如果回车则添加一笔
Combo1.AddItem Combo1.Text
End If
Case Else '否则为非法数据,去除非法字符
KeyAscii = 0 '0值意思就是除了上一个Case里数字与回车放行,其他全部在此拦截
End Select
End Sub
Private Sub Command1_Click()
Dim Min As Integer, iMin As Integer
Dim Max As Integer, iMax As Integer
Dim t As Integer
'②为了运算能正确做比较,这里的值先设置相反。
Min = 32767 '这里写个大值,不超过Integer限定的32767
Max = 0 '这里写个小值
For t = 0 To Combo1.ListCount - 1 Step 1
'③ 开始循环取出每一个值跟 Min、Max做比较
'如果取出的值比Max大(Max就记录它)
If Max < Val(Combo1.List(t)) Then
Max = Val(Combo1.List(t))
iMax = t '与Max同步记录位置
End If
'如果取出的值比Min小(Min就记录它)
If Min > Val(Combo1.List(t)) Then
Min = Val(Combo1.List(t))
iMin = t '与Min同步记录位置
End If
Next t
' t变量刚刚是做循环用途,底下开始的运行作为交换值的用途
'循环完毕,最小值、最小值下标、最大值和最大值下标已经完成赋值
'开始依照④要求,先做组合框的第0项与最小值交换
t = Val(Combo1.List(0))
Combo1.List(0) = Val(Combo1.List(iMin))
ombo1.List(iMin) = t
'开始依照④要求,最大值与最后项交换(照抄前添加必要的Val函数)
t = Val(Combo1.List(Combo1.ListCount - 1))
Combo1.List(Combo1.ListCount - 1) = Val(Combo1.List(iMax))
Combo1.List(iMax) = t
End Sub
1.在窗体里添加一个Combo1然后到Text属性清空Combo1,属性Style设置为1 Simple Combo,然后用鼠标把控件高度拉开。继续到List属性里按照顺序填入图形内指定的值。再把控件的高度宽度调整到适合即可。
2.添加一个命令按钮Command1,到Caption属性改为【交换】文字,可以到Font里面设置文字大小。
3.把窗体的布局依照图片位置调整一下就全部OK了
'说明写的够详细了,如果是作业,就把文字说明删掉些
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询