In windows form application we can invoke UserControl ‘s method from its parent Win form or in reverse from UserControl we can invoke its parent Win Form method.
But in one of our requirement, it was told that all the eventhandler should be in the main form instead of individual usercontrol. And then we created a custom event to avoid the direct dependency. Thought of sharing with you in simple way. Let see how it is:
Here are the details steps I followed :
1. Create a blank Win application solution and it has a default form named as “Form1”.
2. Add a Panel control named as “pnlTest” in “Form1”.
3. Within the Panel taken a button control named as “btnShow” and a label control named as “lblTest”
4. Now, create an UserControl named as “ucTest”
5. Within the UserControl have taken a Tab Control it has 3 TabPages named as “tabPage1”, “tabPage2”, “tabPage3” and one button control “btnCustomEvent”
6. In the user control I have created a method to show the tabs
Below is the code snippet how we are invoking the UserControl method from Win form in btnShow_Click event
In win form I have created below method to display the text coming from UserControl
Now here is the code to invoke the above Win form method from a UserControl
Now, creating a custom event in UserControl and bubble up the event in Win form
In winform Form1_Load we need to register the UserControl event, the code is as follows:
Now Clicking on “Custom Event to Hide Tab Pages” will first call UserControl _ButtonClick custom event which is in main Win form.
Hope this artifact helps us to understand about to fetch/invoke the values from UserControl and how to bubble up a custom event. Let me come up something more in next articles.
Happy coding J
Tarun Kumar Chatterjee