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

发表时间:2017-02-28 09:42:01浏览:79次

在上一篇文章中,小编为您详细介绍了关于《用Axialis?IconWorkshop随心设计Windows》相关知识。 本篇中小编将再为您讲解标题神童教程第二章第九节——综合示例三?VB。

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

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

图①

②、程序目的:

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

③、属性设置:

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

④、程序代码:

① · 窗体的载入事件(Form_Load)

Private Sub Form_Load()

LstLeft.AddItem "刘德华"

LstLeft.AddItem "张学友"

LstLeft.AddItem "郭富城"

LstLeft.AddItem "黎 明"

LstLeft.AddItem "谭咏麟"

LstLeft.AddItem "梅艳芳"

LstLeft.AddItem "张曼玉"

End Sub

② · 向右按钮的点击事件(CmdRight_Click)

Private Sub CmdRight_Click()

LstRight.AddItem LstLeft.List(LstLeft.ListIndex)

LstLeft.RemoveItem LstLeft.ListIndex

End Sub

③ · 全部向右按钮的点击事件(CmdAllRight_Click)

Private Sub CmdAllRight_Click()

LstRight.AddItem "刘德华"

LstRight.AddItem "张学友"

LstRight.AddItem "郭富城"

LstRight.AddItem "黎 明"

LstRight.AddItem "谭咏麟"

LstRight.AddItem "梅艳芳"

LstRight.AddItem "张曼玉"

LstLeft.Clear

End Sub

④ · 向左按钮的点击事件(CmdLeft_Click)

Private Sub CmdLeft_Click()

LstLeft.AddItem LstRight.List(LstRight.ListIndex)

LstRight.RemoveItem LstRight.ListIndex

End Sub

⑤ · 全部向左按钮的点击事件:(CmdAllLeft_Click)

Private Sub CmdAllLeft_Click()

LstLeft.AddItem "刘德华"

LstLeft.AddItem "张学友"

LstLeft.AddItem "郭富城"

LstLeft.AddItem "黎 明"

LstLeft.AddItem "谭咏麟"

LstLeft.AddItem "梅艳芳"

LstLeft.AddItem "张曼玉"

LstRight.Clear

End Sub

⑤、注意事项

① · 窗体载入事件:

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

图②

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

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

图③

③ · 第①个应用程序还没编写完,仔细看①下,哪里还需要再编写?

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

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

向右按钮:

Private Sub CmdRight_Click()

If LstLeft.SelCount > ⓪ Then

LstRight.AddItem LstLeft.List(LstLeft.ListIndex)

LstLeft.RemoveItem LstLeft.ListIndex

End If

End Sub

向左按钮:

Private Sub CmdLeft_Click()

If LstRight.SelCount > ⓪ Then

LstLeft.AddItem LstRight.List(LstRight.ListIndex)

LstRight.RemoveItem LstRight.ListIndex

End If

End Sub

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

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

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

图④

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

全部向右按钮:

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

编后语:关于《神童教程第二章第九节——综合示例三?VB》关于知识就介绍到这里,希望本站内容能让您有所收获,如有疑问可跟帖留言,值班小编第一时间回复。 下一篇内容是有关《VB?神童教程第二章第一节--Label》,感兴趣的同学可以点击进去看看。

相关推荐

玩家点评

条评论

热门下载

热点资讯