In the first method you posted, System::Object^ senderis the button. You can just cast it to a System::Windows::Forms::Button^ there and work with it rather than calling another method if you want. I don't know which is the preferred way though, windows programming in general has always struck me as somewhat counter-intuitive.
The question was using winform. regarding the refering to the control handlers.
So, this way is ok. also , it seems the best way to call it directly from the event handler.
I found out that winform is not fully supported for c++. So , I need to write the DUI of my software in C#. anybody knows what is the techniuqe to call c++ functions from c# ?