您现在的位置: 中国男护士网 >> 考试频道 >> 计算机等级 >> 二级辅导 >> VB >> 辅导 >> 正文    
  VB神童教程第二章第九节——综合示例三 【注册男护士专用博客】          

VB神童教程第二章第九节——综合示例三

www.nanhushi.com     佚名   不详 

前面我们学了列表框控件(ListBox)与组合框控件(ComboBox),本节将就它们制作一个简单的应用程序。

    一、程序界面:界面如图一


图一


    二、程序目的:

    两个列表框,左列表框(LstLeft)罗列了一些歌手名字,右列表框(LstRight)初始状态为空;点击向右按钮(CmdRight),可以将左列表框中的指定选项移动到右边列表框;点击全部向右按钮(CmdAllRight),可以将左列表框中所有的内容搬到右列表框中;点击向左按钮(CmdLeft),可以将右列表框中选定的表项移动到左列表框中;点击全部向左按钮(CmdAllLeft),可以将右列表框中的所有内容移动到左列表框中。

    三、属性设置:

    见图一,注意,列表框的 Style 都为 0 即标准类型。

    四、程序代码:

    1、窗体的载入事件(Form_Load)

    Private Sub Form_Load()

    LstLeft.AddItem "刘德华"
    LstLeft.AddItem "张学友"
    LstLeft.AddItem "郭富城"
    LstLeft.AddItem "黎 明"
    LstLeft.AddItem "谭咏麟"
    LstLeft.AddItem "梅艳芳"
    LstLeft.AddItem "张曼玉"
    End Sub

    2、向右按钮的点击事件(CmdRight_Click)

    Private Sub CmdRight_Click()
    LstRight.AddItem LstLeft.List(LstLeft.ListIndex)
    LstLeft.RemoveItem LstLeft.ListIndex
    End Sub



    3、全部向右按钮的点击事件(CmdAllRight_Click)
    Private Sub CmdAllRight_Click()
    LstRight.AddItem "刘德华"
    LstRight.AddItem "张学友"
    LstRight.AddItem "郭富城"
    LstRight.AddItem "黎 明"
    LstRight.AddItem "谭咏麟"
    LstRight.AddItem "梅艳芳"
    LstRight.AddItem "张曼玉"
    LstLeft.Clear
    End Sub

    4、向左按钮的点击事件(CmdLeft_Click)
    Private Sub CmdLeft_Click()
    LstLeft.AddItem LstRight.List(LstRight.ListIndex)
    LstRight.RemoveItem LstRight.ListIndex
    End Sub

    5、全部向左按钮的点击事件:(CmdAllLeft_Click)
    Private Sub CmdAllLeft_Click()
    LstLeft.AddItem "刘德华"
    LstLeft.AddItem "张学友"
    LstLeft.AddItem "郭富城"
    LstLeft.AddItem "黎 明"
    LstLeft.AddItem "谭咏麟"
    LstLeft.AddItem "梅艳芳"
    LstLeft.AddItem "张曼玉"
    LstRight.Clear
    End Sub

    五、注意事项

    1、窗体载入事件:

    就是窗体打开时自动加载的信息,也可以在界面设置时通过左列表框的 List 属性设定。如图二:


图二


    2、无论是部分转移,还是全部移动,都要记着将本已移动的表项在原有列表框中清除,如代码: LstLeft.RemoveItem LstLeft.ListIndex

    如果不清除,那么表项移动后,原先的表项还在原处,用户可能对同一表项多次选择。如图三


图三


    3、第一个应用程序还没编写完,仔细看一下,哪里还需要再编写?

    没错,就是向左按钮与向右按钮的点击事件还没完善,按照上面的程序,如果在初始状态下(也就是没有选中任何表项),点击向左或向右按钮会产生程序错误。

    所以我们得在原来向左或向右按钮的事件中增加判断过程,修改后的代码如下:

    向右按钮:

    Private Sub CmdRight_Click()
    If LstLeft.SelCount > 0 Then
    LstRight.AddItem LstLeft.List(LstLeft.ListIndex)
    LstLeft.RemoveItem LstLeft.ListIndex
    End If
    End Sub

    向左按钮:
    Private Sub CmdLeft_Click()
    If LstRight.SelCount > 0 Then
    LstLeft.AddItem LstRight.List(LstRight.ListIndex)
    LstRight.RemoveItem LstRight.ListIndex
    End If
    End Sub

    看见了吧,向左与向右按钮还得增加列表框中是否有表项被选中的判断。



    4、大家先移动左列表框中的一个项目到右列表框中,然后再全部移过去,你又会发现什么样的问题呢?

    这时,你会发现右列表框的项目多了一项,而这多出来的表项正是最先移过去的那个项目,那么,全部移动的按钮还需要加以完善。如图四:


图四


    解决办法很简单,在全部移动时,先清除目标列表框的内容再进行移动,修改后的代码如下:

    全部向右按钮:

    Private Sub CmdAllRight_Click()
    LstRight.Clear
    LstRight.AddItem "刘德华"
    LstRight.AddItem "张学友"
    LstRight.AddItem "郭富城"
    LstRight.AddItem "黎 明"
    LstRight.AddItem "谭咏麟"
    LstRight.AddItem "梅艳芳"
    LstRight.AddItem "张曼玉"
    LstLeft.Clear
    End Sub

    全部向左按钮:

    Private Sub CmdAllLeft_Click()
    LstLeft.Clear
    LstLeft.AddItem "刘德华"
    LstLeft.AddItem "张学友"
    LstLeft.AddItem "郭富城"
    LstLeft.AddItem "黎 明"
    LstLeft.AddItem "谭咏麟"
    LstLeft.AddItem "梅艳芳"
    LstLeft.AddItem "张曼玉"
    LstRight.Clear
    End Sub

    5、本节的程序只是为了让大家便于理解才这样编写的,而最为科学、最为有效的编写方法,我们将在下一节讲述。在开始下一节课程之前,大家可以将两个列表框的 Style 改成 1 即复选类型,你会发现本节所编写的程序又有很多问题了,该如何解决呢?下一节见!

 

文章录入:杜斌    责任编辑:杜斌 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
     

    联 系 信 息
    QQ:88236621
    电话:15853773350
    E-Mail:malenurse@163.com
    免费发布招聘信息
    做中国最专业男护士门户网站
    最 新 热 门
    最 新 推 荐
    相 关 文 章
    没有相关文章
    专 题 栏 目

      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)                            【进男护士社区逛逛】
    姓 名:
    * 游客填写  ·注册用户 ·忘记密码
    主 页:

    评 分:
    1分 2分 3分 4分 5分
    评论内容:
  • 请遵守《互联网电子公告服务管理规定》及中华人民共和国其他各项有关法律法规。
  • 严禁发表危害国家安全、损害国家利益、破坏民族团结、破坏国家宗教政策、破坏社会稳定、侮辱、诽谤、教唆、淫秽等内容的评论 。
  • 用户需对自己在使用本站服务过程中的行为承担法律责任(直接或间接导致的)。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表网友个人观点,与本网站立场无关。