Yick!!

No, you shouldn't be calling event handlers directly, the button should have a performclick method (if memory serves)which raises the event internally.
Also i'm sure that i read somewhere that you shouldn't be using the call keyword at all, i just can't remember where...
When you invoke a method the arguments you need to pass in will popup in a tooltip like window. For example a GraphicsPath object's constructor is overloaded to take several arguments. One of which is fill mode, so we could do this to create a 'New' GraphicsPath
Dim Gp as New GraphicsPath(FillMode.Alternate)
We do this because the GraphicsPath's Constructor (Sub New) looks something like this..
Public Sub New(Byval FillMode as FillMode)
End Sub
So that bit in brackets means that we have to pass in an 'argument' of the type FillMode. Don't get too bogged down with the term 'argument'. It is just a way of saying..
If you want to use this Sub Routine Or Function you are going to have to give me the information i ask for or i won't work. For example, if i create a sub like this..
Public Sub GetMeAWig(Byval WigColor as Color)
...
End sub
So now i'm a bald man and i want a wig. So we call the sub, but we have to supply a wigcolor as specified in the 'argument'
Thats all you need to do to call that sub. Then inside that sub you can do what ever you want with WigColor because we have now assigned it the value of red.
Public Sub GetMeAWig(Byval WigColor as Color)
MessageBox.Show(WigColor.Tostring)
End Sub
Calling this sub will make a messagebox popup and it will say 'Red' because that is the value of the wigcolor argument. With me?