Events registered with AddHandler not firing

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Thiago Arrais

    Events registered with AddHandler not firing

    I am writing a VS .NET Addin and I need to create menu items
    (CommandBarButt ons) at run-time. I can do that but the event handlers
    do not work. They are registered using AddHandler (wich was created
    for that, isn't it?), but I think I am using it wrongly, because only
    the last registered button fires the event and only if it the button
    variable is declared as a class field (sorry if the term is incorrect,
    I am new to VB and .NET).

    Any solution in C# or VB .NET is welcome. I actually started writing
    the Addin in C# but changed to VB because the C# code couldn't fire
    events. Events could be fired in VB using the Handles clause but now I
    need to add handlers at runtime...

    My Code (obviously simplified):

    Public Class Connect

    ....

    Dim button As CommandBarButto n 'button as class field


    Private Sub GuiInit()

    ...

    For Each filestr In files

    button =
    myMenu.Controls .Add(MsoControl Type.msoControl Button)
    button.Caption = Path.GetFileNam e(filestr)
    button.Tag = filestr
    AddHandler button.Click, AddressOf WizardButtonCli ck

    Next

    End Sub


    Public Sub WizardButtonCli ck(ByVal Ctrl As CommandBarButto n, ByRef
    CancelDefault As Boolean)

    handler.Process File(Ctrl.Tag)

    End Sub

    If you don't want to post to the newsgroup, e-mail to
    arrais.usenet@n nospamm.qualiti .com
  • PresterJohn

    #2
    Re: Events registered with AddHandler not firing

    Try the dim for 'button' WithEvents...

    --Prester John


    "Thiago Arrais" <thiago.arrai s-usenet@qualiti. com> wrote in message
    news:8ebe93e1.0 401281346.25993 149@posting.goo gle.com...[color=blue]
    > I am writing a VS .NET Addin and I need to create menu items
    > (CommandBarButt ons) at run-time. I can do that but the event handlers
    > do not work. They are registered using AddHandler (wich was created
    > for that, isn't it?), but I think I am using it wrongly, because only
    > the last registered button fires the event and only if it the button
    > variable is declared as a class field (sorry if the term is incorrect,
    > I am new to VB and .NET).
    >
    > Any solution in C# or VB .NET is welcome. I actually started writing
    > the Addin in C# but changed to VB because the C# code couldn't fire
    > events. Events could be fired in VB using the Handles clause but now I
    > need to add handlers at runtime...
    >
    > My Code (obviously simplified):
    >
    > Public Class Connect
    >
    > ...
    >
    > Dim button As CommandBarButto n 'button as class field
    >
    >
    > Private Sub GuiInit()
    >
    > ...
    >
    > For Each filestr In files
    >
    > button =
    > myMenu.Controls .Add(MsoControl Type.msoControl Button)
    > button.Caption = Path.GetFileNam e(filestr)
    > button.Tag = filestr
    > AddHandler button.Click, AddressOf WizardButtonCli ck
    >
    > Next
    >
    > End Sub
    >
    >
    > Public Sub WizardButtonCli ck(ByVal Ctrl As CommandBarButto n, ByRef
    > CancelDefault As Boolean)
    >
    > handler.Process File(Ctrl.Tag)
    >
    > End Sub
    >
    > If you don't want to post to the newsgroup, e-mail to
    > arrais.usenet@n nospamm.qualiti .com[/color]


    Comment

    • Thiago Arrais

      #3
      Re: Events registered with AddHandler not firing

      Tried that. And also declaring it Private.

      Only the last created button works.

      "PresterJoh n" <presterjohn@co mcast.net> wrote in message news:<_rZRb.172 681$I06.1724156 @attbi_s01>...[color=blue]
      > Try the dim for 'button' WithEvents...
      >
      > --Prester John
      >
      >
      > "Thiago Arrais" <thiago.arrai s-usenet@qualiti. com> wrote in message
      > news:8ebe93e1.0 401281346.25993 149@posting.goo gle.com...[color=green]
      > > I am writing a VS .NET Addin and I need to create menu items
      > > (CommandBarButt ons) at run-time. I can do that but the event handlers
      > > do not work. They are registered using AddHandler (wich was created
      > > for that, isn't it?), but I think I am using it wrongly, because only
      > > the last registered button fires the event and only if it the button
      > > variable is declared as a class field (sorry if the term is incorrect,
      > > I am new to VB and .NET).
      > >
      > > Any solution in C# or VB .NET is welcome. I actually started writing
      > > the Addin in C# but changed to VB because the C# code couldn't fire
      > > events. Events could be fired in VB using the Handles clause but now I
      > > need to add handlers at runtime...[/color][/color]

      Comment

      • Thiago Arrais

        #4
        Re: Events registered with AddHandler not firing

        Found a solution to the problem.

        You actually need to somehow keep a reference to the objects that you
        registered the events for. I used an ArrayList.

        Thank you,
        Thiago Arrais

        Comment

        Working...