2010-11-23 6 views
0

Ich erstelle Schaltflächen im laufenden Betrieb und erstelle Ereignishandler für sie. Wenn der Code ausgeführt wird, funktioniert alles einwandfrei, so dass das Menü während des Vorgangs erfolgreich gefüllt wird. Wenn ich auf eine Schaltfläche klicke, wird das Ereignis ausgelöst, aber sender = Nothing und das Object ist nicht auf instance exception gesetzt. Irgendwelche Ideen? Es muss etwas fehlen.Ereignishandler, die den nicht installierten Absender übergeben

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 

Antwort

1

Der Sender ist der BarManager. Verwenden Sie stattdessen e.Item.

+0

Vielen Dank! –