Login or Sign up Help | Site Map
Connecting Tech Pros Worldwide

Events registered with AddHandler not firing

Question posted by: Thiago Arrais (Guest) on November 20th, 2005 12:06 PM
I am writing a VS .NET Addin and I need to create menu items
(CommandBarButtons) 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 CommandBarButton 'button as class field


Private Sub GuiInit()

...

For Each filestr In files

button =
myMenu.Controls.Add(MsoControlType.msoControlButto n)
button.Caption = Path.GetFileName(filestr)
button.Tag = filestr
AddHandler button.Click, AddressOf WizardButtonClick

Next

End Sub


Public Sub WizardButtonClick(ByVal Ctrl As CommandBarButton, ByRef
CancelDefault As Boolean)

handler.ProcessFile(Ctrl.Tag)

End Sub

If you don't want to post to the newsgroup, e-mail to
Join Bytes!
Would you like to answer this question?
Sign up for a free account, or Login (if you're already a member).
PresterJohn's Avatar
PresterJohn
Guest
n/a Posts
November 20th, 2005
12:07 PM
#2

Re: Events registered with AddHandler not firing
Try the dim for 'button' WithEvents...

--Prester John


"Thiago Arrais" <thiago.arrais-usenet@qualiti.com> wrote in message
news:8ebe93e1.0401281346.25993149@posting.google.c om...[color=blue]
> I am writing a VS .NET Addin and I need to create menu items
> (CommandBarButtons) 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 CommandBarButton 'button as class field
>
>
> Private Sub GuiInit()
>
> ...
>
> For Each filestr In files
>
> button =
> myMenu.Controls.Add(MsoControlType.msoControlButto n)
> button.Caption = Path.GetFileName(filestr)
> button.Tag = filestr
> AddHandler button.Click, AddressOf WizardButtonClick
>
> Next
>
> End Sub
>
>
> Public Sub WizardButtonClick(ByVal Ctrl As CommandBarButton, ByRef
> CancelDefault As Boolean)
>
> handler.ProcessFile(Ctrl.Tag)
>
> End Sub
>
> If you don't want to post to the newsgroup, e-mail to
> Join Bytes![/color]



Thiago Arrais's Avatar
Thiago Arrais
Guest
n/a Posts
November 20th, 2005
12:10 PM
#3

Re: Events registered with AddHandler not firing
Tried that. And also declaring it Private.

Only the last created button works.

"PresterJohn" <presterjohn@comcast.net> wrote in message news:<_rZRb.172681$I06.1724156@attbi_s01>...[color=blue]
> Try the dim for 'button' WithEvents...
>
> --Prester John
>
>
> "Thiago Arrais" <thiago.arrais-usenet@qualiti.com> wrote in message
> news:8ebe93e1.0401281346.25993149@posting.google.c om...[color=green]
> > I am writing a VS .NET Addin and I need to create menu items
> > (CommandBarButtons) 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]

Thiago Arrais's Avatar
Thiago Arrais
Guest
n/a Posts
November 20th, 2005
12:14 PM
#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

 
Not the answer you were looking for? Post your question . . .
169,970 Experts ready to help you find a solution.
Sign up for a free account, or Login (if you're already a member).

  • Didn't find the answer you were looking for?
    Post Your Question
  • Top Community Contributors