首页 新闻 会员 周边 捐助

关于NavBarControl的用法

0
悬赏园豆:50 [已解决问题] 解决于 2015-01-21 15:19

如何实现点击不同的NavBarItem可触发不同的事件,重点是,item可能随时增加,就是如可动态地实现item的linkclicked事件

贾晓俊AA的主页 贾晓俊AA | 初学一级 | 园豆:78
提问于:2015-01-21 13:18
< >
分享
最佳答案
0

VB.NET把事件傻瓜化了,想进阶的人就卡住了。

其实也很简单,就跟C#是一样的,

先定义一个事件函数

Private Sub NavB10001_LinkClicked(ByVal sender As Object, ByVal e As DevExpress.XtraNavBar.NavBarLinkEventArgs)

'  这儿写事件处理过程。

end sub

然后,新增ITEM的地方这样写

dim newItem as new NavBarItem

with newItem

      .text="按钮标题"

  addhandler .LinkClicked, address of NavB10001_LinkClicked

  '这句就是将这个按钮的点击事件,用NavB10001_Linkclicked这个函数来处理。

     '为避免你搞混,“NavB10001_LinkClicked”这个名字明确告诉你,是可以随便你写的。

end with 

收获园豆:45
爱编程的大叔 | 高人七级 |园豆:30844 | 2015-01-21 14:47

好的,谢谢您,我先试一下,如果操作过程中有什么问题再请教,如果没问题,及给您豆豆啊

贾晓俊AA | 园豆:78 (初学一级) | 2015-01-21 14:52

@贾晓俊AA: 其实你有空看看DevExpress的DEMO,里面关于这个控件的演示代码应该有类似的DEMO。

爱编程的大叔 | 园豆:30844 (高人七级) | 2015-01-21 15:02

@爱编程的大叔: 其实更重要的是理解委托

zirain | 园豆:200 (初学一级) | 2015-01-22 12:28
其他回答(1)
0

很简单啊,添加一个 Item,就为新增的 Item 添加一个事件处理方法,所有 Item 共用一个处理方法,linkclicked 事件的参数会指明是哪个 Item 被点击了。

收获园豆:5
Launcher | 园豆:45050 (高人七级) | 2015-01-21 13:28

本人初学,大神能不能给点代码啊?

支持(0) 反对(0) 贾晓俊AA | 园豆:78 (初学一级) | 2015-01-21 13:44

@贾晓俊AA: 初学者,你能不能给点你已经写好的代码啊?

支持(0) 反对(0) Launcher | 园豆:45050 (高人七级) | 2015-01-21 13:45

@Launcher: 

Private Sub NavB10001_LinkClicked(ByVal sender As Object, ByVal e As DevExpress.XtraNavBar.NavBarLinkEventArgs) Handles NavB10001.LinkClicked
Dim c As PubSysDAL = New PubSysDAL()
Dim dsOut As DataSet = New DataSet()
Dim strSQL As String = "select * from 库存货物 where 货物编号='" & e.Link.Caption & "'"
dsOut = c.Query(strSQL)
If Not dsOut Is Nothing And dsOut.Tables.Count > 0 Then
dtOut = dsOut.Tables(0)
gcOut.DataSource = dtOut
End If
End Sub

我就会这么写,但我想实现的不是这个样子的,我想实现的是不用再每个item的linkclicked事件下添加代码

支持(0) 反对(0) 贾晓俊AA | 园豆:78 (初学一级) | 2015-01-21 13:48

@贾晓俊AA: 在你的源代码中搜下,还有哪里出现了“NavB10001_LinkClicked”字符串

支持(0) 反对(0) Launcher | 园豆:45050 (高人七级) | 2015-01-21 13:52

@Launcher: 没有。。这个建议之前一个朋友也给提过,不过真的没找到

支持(0) 反对(0) 贾晓俊AA | 园豆:78 (初学一级) | 2015-01-21 13:54

@贾晓俊AA: 

Private Sub NavB10001_LinkClicked(ByVal sender As Object, ByVal e As DevExpress.XtraNavBar.NavBarLinkEventArgs) Handles NavB10001.LinkClicked

我想问一句,在这行代码中 NavB10001 是不是就是 NavBarControl 中一个 NavBarItem ?

支持(0) 反对(0) Launcher | 园豆:45050 (高人七级) | 2015-01-21 13:56

@Launcher: 是的

支持(0) 反对(0) 贾晓俊AA | 园豆:78 (初学一级) | 2015-01-21 13:56

@贾晓俊AA: 学学 WithEvents 的用法

支持(0) 反对(0) Launcher | 园豆:45050 (高人七级) | 2015-01-21 14:06

@Launcher: 哦,谢谢指导

支持(0) 反对(0) 贾晓俊AA | 园豆:78 (初学一级) | 2015-01-21 14:07
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册