VB:建立一个简单组合框,输入数字加入到组合框的列表框内,并将列表框中最小值项目和第0个项目交换以及最大值与最后项目交换

题目来源:大工慕课 链接
原题:Visual Basic程序设计教程(第二版)龚沛曾主编,高等教育出版社 实验5-8
作者:Caleb Sung

题目要求

窗体上建立一个简单组合框,在组合框的文本框输入数字字符,按回车键后加入到组合框的列表框内,如图E.8所示;单击“交换”按钮,将列表框中最小值项目和第0个项目交换;最大值与最后项目交换,如图所示:
这里写图片描述

提示

  1. 只能输入数字,Combo1_KeyPress事件通过如下代码实现:
Select Case KeyAscii
Case 48 to 57,13 '0~9数字和回车键为合法数据
Case Else '否则为非法数据,去除非法字符
KeyAscii=0
End Select
  1. 求最大值和最小值必须声明4个变量:如Min、iMin、Max、iMax分别存放最小值、最小值下标、最大值和最大值下标,并将列表框中低0个项目作为上述4个变量的初值。
  2. 按照求最大值和最小值的方法,在组合框中找最小值和最大值,并获得最小值和最大值下标;注意比较时要用Val函数,否则作为字符串比较。
  3. 将组合框的第0项与最小值交换、最大值与最后项交换。例,最大值与最后项交换的代码如下:
t=Combo1.List(Combo1.ListCount-1)
Combo1.List(Combo1.ListCount-1)= Combo1.List(iMax)
Combo1.List(iMax)= t

参考解答

首先画一个高度较高的ComboBox,它的按钮长这个样子:
这里写图片描述
随后选中画好的ComboBox,在属性面板里找到Style属性,设置为“1 - Simple Combo”:
这里写图片描述
接下来画一个Button,就可以愉快的Coding了 (>^ω^<)

Private Sub Combo1_KeyPress(KeyAscii As Integer)
    Select Case KeyAscii
    Case 48 To 57, 13
    Case Else
    KeyAscii = 0
    End Select
    If KeyAscii = 13 Then
        Combo1.AddItem Combo1.Text
        Combo1.Text = ""
    End If
End Sub

Private Sub Command1_Click()
    Max = Val(Combo1.List(0))
    iMax = 0
    Min = Val(Combo1.List(0))
    iMin = 0
    For i = 1 To Combo1.ListCount - 1
        If Val(Combo1.List(i)) > Max Then
            Max = Val(Combo1.List(i))
            iMax = i
        ElseIf Val(Combo1.List(i)) < Min Then
            Min = Val(Combo1.List(i))
            iMin = i
        End If
    Next i
    t = Combo1.List(Combo1.ListCount - 1)
    Combo1.List(Combo1.ListCount - 1) = Combo1.List(iMax)
    Combo1.List(iMax) = t
    t = Combo1.List(0)
    Combo1.List(0) = Combo1.List(iMin)
    Combo1.List(iMin) = t
End Sub

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值