您的位置:首页资讯编程开发 → VB 神童教程第二章第九节——综合示例三

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

时间:2004/10/15 2:46:00来源:本站整理作者:蓝点我要评论(1)

    前面我们学了列表框控件(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 即复选类型,你会发现本节所编写的程序又有很多问题了,该如何解决呢?下一节见!

相关阅读 Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么

文章评论
发表评论

热门文章 没有查询到任何记录。

最新文章 编程语言排行榜2020年android studio怎么删 eclipse怎么设置编码格式 eclipse设置编码格andriod studio如何使用真机测试 andriod sandroid studio怎么生成apk android studioandroid studio如何导入jar包 android stud

人气排行 安卓模拟器BlueStacks安装使用教程编程语言排行榜2020年9月 TIOBE编程语言排行eclipse字体大小怎么设置 eclipse字体大小plsql developer怎么连接数据库 plsql deveTomcat9.0安装教程 Tomcat9.0环境变量配置方plsql developer怎么使用 plsql developerVisual Studio 2015环境搭建教程Eclipse优化设置教程 Eclipse优化设置技巧