VB神童教程第二章第九节——综合示例三前面我们习了列表框控件(ListBox)与人组板控件(ComboBox),本节将就它们制作一个非常简单的应用程序。程序目的:两个列表框,左列表框(LstLeft)罗列了一些歌手名字,右列表框(LstRight)初始状态为空;页面向右按钮(CmdRight),可以将左列表框中的登录选项移动到右边列表框;页面全部向右按钮(CmdAllRight),可以将左列表框中所有的内容搬右列表框中;页面向左按钮(CmdLeft),可以将右列表框中指定的表项移动到左列表框中;页面全部向左按钮(CmdAllLeft),可以将右列表框中的所有内容移动到左列表框中。
属性设置:留意,列表框的Style都为0即标准类型。1/12程序代码:1、窗体的写入事件(Form_Load)PrivateSubForm_Load()LstLeft.AddItem刘德华LstLeft.AddItem张学友LstLeft.AddItem郭富城LstLeft.AddItem黎 明LstLeft.AddItem谭咏麟LstLeft.AddItem梅艳芳LstLeft.AddItem张曼玉EndSub2/122、向右按钮的页面事件(CmdRight_Click)PrivateSubCmdRight_Click()LstRight.AddItemLstLeft.List(LstLeft.ListIndex)LstLeft.RemoveItemLstLeft.ListIndexEndSub3/123、全部向右按钮的页面事件(CmdAllRight_Click)PrivateSubCmdAllRight_Click()LstRight.AddItem刘德华LstRight.AddItem张学友LstRight.AddItem郭富城LstRight.AddItem黎 明LstRight.AddItem谭咏麟LstRight.AddItem梅艳芳LstRight.AddItem张曼玉LstLeft.ClearEndSub4/124、向左按钮的页面事件(CmdLeft_Click)PrivateSubCmdLeft_Click()LstLeft.AddItemLstRight.List(LstRight.ListIndex)LstRight.RemoveItemLstRight.ListIndexEndSub5/125、全部向左按钮的页面事件:(CmdAllLeft_Click)PrivateSubCmdAllLeft_Click()LstLeft.AddItem刘德华LstLeft.AddItem张学友LstLeft.AddItem郭富城LstLeft.AddItem黎 明LstLeft.AddItem谭咏麟LstLeft.AddItem梅艳芳LstLeft.AddItem张曼玉LstRight.ClearEndSub6/12注意事项:1、窗体写入事件:就是窗体关上时自动读取的信息,也可以在界面设置时通过左列表框的List属性原作。2、无论是部分移往,还是全部移动,都要录着将本已移动的表项在原先列表框中清理,如代码:LstLeft.RemoveItemLstLeft.ListIndex如果不清理,那么表项移动后,原本的表项还在原地,用户有可能对同一表项多次自由选择。
3、第一个应用程序还没有撰写完了,细心看一下,哪里还必须再行撰写?到底,就是向左按钮与向右按钮的页面事件还没有完备,按照上面的程序,如果在初始状态下(也就是没顺位任何表项),页面向左或向右按钮不会产生程序错误。7/12所以我们得在原本向左或向右按钮的事件中减少辨别过程,改动后的代码如下:向右按钮:PrivateSubCmdRight_Click()IfLstLeft.SelCount0ThenLstRight.AddItemLstLeft.List(LstLeft.ListIndex)LstLeft.RemoveItemLstLeft.ListIndexEndIfEndSub8/12向左按钮:PrivateSubCmdLeft_Click()IfLstRight.SelCount0ThenLstLeft.AddItemLstRight.List(LstRight.ListIndex)LstRight.RemoveItemLstRight.ListIndexEndIfEndSub看到了吧,向左与向右按钮还得减少列表框中否有表项被顺位的辨别。9/124、大家再行移动左列表框中的一个项目到右列表框中,然后再行全部移过去,你又不会找到什么样的问题呢?这时,你不会找到右列表框的项目多了一项,而这多出来的表项正是年所移过去的那个项目,那么,全部移动的按钮还必须加以完备。
解决办法很非常简单,在全部移动时,再行清理目标列表框的内容再行展开移动,改动后的代码如下:10/12全部向右按钮:PrivateSubCmdAllRight_Click()LstRight.ClearLstRight.AddItem刘德华LstRight.AddItem张学友LstRight.AddItem郭富城LstRight.AddItem黎 明LstRight.AddItem谭咏麟LstRight.AddItem梅艳芳LstRight.AddItem张曼玉LstLeft.ClearEndSub11/12全部向左按钮:PrivateSubCmdAllLeft_Click()LstLeft.ClearLstLeft.AddItem刘德华LstLeft.AddItem张学友LstLeft.AddItem郭富城LstLeft.AddItem黎 明LstLeft.AddItem谭咏麟LstLeft.AddItem梅艳芳LstLeft.AddItem张曼玉LstRight.ClearEndSub12/125、本节的程序只是为了让大家便于解读才这样撰写的,而尤为科学、尤为有效地的撰写方法,我们将在下一节描写。在开始下一节课程之前,大家可以将两个列表框的Style改为1即预选类型,你不会找到本节所撰写的程序又有很多问题了,该如何解决问题呢?下一节闻!。
本文来源:BOYU SPORTS-www.saintbeef.com