【问题标题】:Event Handlers passing sender thats not instanciated传递未实例化的发送者的事件处理程序
【发布时间】:2010-11-23 15:45:46
【问题描述】:

我正在动态创建按钮并为它们创建事件处理程序。当代码运行时,一切正常,只要成功地填充菜单。当我单击一个按钮时,事件会触发,但是 sender=Nothing 并且对象未设置为实例异常出现。有任何想法吗?一定是少了什么。

Imports DevExpress.XtraBars.Ribbon

Public Class Form1

    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Dim menu As New RibbonControl
        Dim aPage As New RibbonPage("Nicks Page")
        'groups'
        Dim aGroup1 As New RibbonPageGroup("1st Group")

        'ADD BUTTONS TO RIBBON GROUP HERE'
        Dim i As New DevExpress.XtraBars.BarButtonItem()
        i.Caption = "Nicks Button"
        AddHandler i.ItemClick, AddressOf y
        aGroup1.ItemLinks.Add(i)

        Dim i2 As New DevExpress.XtraBars.BarButtonItem()
        i2.Caption = "Nicks Other Button"
        AddHandler i2.ItemClick, AddressOf y
        aGroup1.ItemLinks.Add(i2)

        aPage.Groups.Add(aGroup1)
        menu.Pages.Add(aPage)
        Me.Controls.Add(menu)
    End Sub

    Private Sub y(ByVal sender As System.Object, ByVal e As DevExpress.XtraBars.ItemClickEventArgs)
        'EXCEPTION SENDER=NOTHING MSGBOX FAILS'
        MsgBox(CType(sender, DevExpress.XtraBars.BarButtonItem).Caption)
    End Sub
End Class

【问题讨论】:

    标签: vb.net winforms devexpress


    【解决方案1】:

    发送者是 BarManager。请改用 e.Item。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多