How to handle a User Control Event ?
-
I have made a User Control in C#. It has two buttons, Submit and Cancel. The Submit button event is handled in the Control's code itself. I want to handle that Cancel buttons event so that it closes the form on which it is placed. And I want to make that Submit button the AcceptButton and Cancel as the CancelButton. Please tell me in what way I can achieve this.
Always Keep Smiling. Yours Pankaj Nikam
On CancelButton's clientclick event write a client side (javascript) function to close the window. e.g; window.opener=null;window.close(); Hope this helps:)
-
On CancelButton's clientclick event write a client side (javascript) function to close the window. e.g; window.opener=null;window.close(); Hope this helps:)
Its a window application for which I was talking about... I think this solution will work for the Web Applications. I dont have that knowledge about web applications. Anyway thanks for trying. :)
Always Keep Smiling. Yours Pankaj Nikam
-
I have made a User Control in C#. It has two buttons, Submit and Cancel. The Submit button event is handled in the Control's code itself. I want to handle that Cancel buttons event so that it closes the form on which it is placed. And I want to make that Submit button the AcceptButton and Cancel as the CancelButton. Please tell me in what way I can achieve this.
Always Keep Smiling. Yours Pankaj Nikam
-
I have made a User Control in C#. It has two buttons, Submit and Cancel. The Submit button event is handled in the Control's code itself. I want to handle that Cancel buttons event so that it closes the form on which it is placed. And I want to make that Submit button the AcceptButton and Cancel as the CancelButton. Please tell me in what way I can achieve this.
Always Keep Smiling. Yours Pankaj Nikam
If you need to be able to set Accept and Cancel you can't do it with the designer. In the user control create readonly properties for Accept and Cancel buttons
[Browsable(false),
DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public IButtonControl AcceptButton
{
get { return button1; }
}
[Browsable(false),
DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public IButtonControl CancelButton
{
get { return button2; }
}then in the host form you can set in code
AcceptButton = userControl11.AcceptButton;
CancelButton = userControl11.CancelButton;If you want it through the designer then you can only have one button. Just make the user control also derive from IButtonControl and implement it to use the button in question.
Dave
BTW, in software, hope and pray is not a viable strategy. (Luc Pattyn)
Visual Basic is not used by normal people so we're not covering it here. (Uncyclopedia) -
If you need to be able to set Accept and Cancel you can't do it with the designer. In the user control create readonly properties for Accept and Cancel buttons
[Browsable(false),
DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public IButtonControl AcceptButton
{
get { return button1; }
}
[Browsable(false),
DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public IButtonControl CancelButton
{
get { return button2; }
}then in the host form you can set in code
AcceptButton = userControl11.AcceptButton;
CancelButton = userControl11.CancelButton;If you want it through the designer then you can only have one button. Just make the user control also derive from IButtonControl and implement it to use the button in question.
Dave
BTW, in software, hope and pray is not a viable strategy. (Luc Pattyn)
Visual Basic is not used by normal people so we're not covering it here. (Uncyclopedia) -
Wow...didn't knew this thing. If had the same issue, I would have exposed the button to the form. This would have made the purpose of having a user control go in vain. It's one thing I learnt today. Thanks.
जय हिंद
:-D
Dave
BTW, in software, hope and pray is not a viable strategy. (Luc Pattyn)
Visual Basic is not used by normal people so we're not covering it here. (Uncyclopedia) -
If you need to be able to set Accept and Cancel you can't do it with the designer. In the user control create readonly properties for Accept and Cancel buttons
[Browsable(false),
DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public IButtonControl AcceptButton
{
get { return button1; }
}
[Browsable(false),
DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public IButtonControl CancelButton
{
get { return button2; }
}then in the host form you can set in code
AcceptButton = userControl11.AcceptButton;
CancelButton = userControl11.CancelButton;If you want it through the designer then you can only have one button. Just make the user control also derive from IButtonControl and implement it to use the button in question.
Dave
BTW, in software, hope and pray is not a viable strategy. (Luc Pattyn)
Visual Basic is not used by normal people so we're not covering it here. (Uncyclopedia)Thanks a lot for this one...I will surely try this one. And what about the event handler ? Can you help me ?
Always Keep Smiling. Yours Pankaj Nikam
-
Since the usercontrol does not have a accept button property, you will need to expose the submit button and then set the AcceptButton property. Same will work with the cancel button as well.
जय हिंद
Thanks for the Answer. Can you tell me how to expose the button ? Do you mean that I should add the button on the control at runtime ?
Always Keep Smiling. Yours Pankaj Nikam
-
Thanks a lot for this one...I will surely try this one. And what about the event handler ? Can you help me ?
Always Keep Smiling. Yours Pankaj Nikam
There's a few ways this can be done. The easiest is just to subscribe in the user control and raise a new event each time.
using System;
using System.ComponentModel;
using System.Windows.Forms;namespace WindowsFormsApplication1
{
public partial class UserControl1 : UserControl
{
public event EventHandler Button1Clicked;
public event EventHandler Button2Clicked;public UserControl1() { InitializeComponent(); button1.Click += new EventHandler(button1\_Click); button2.Click += new EventHandler(button2\_Click); } protected virtual void button1\_Click(object sender, EventArgs e) { EventHandler eh = Button1Clicked; if (eh != null) eh(this, e); } protected virtual void button2\_Click(object sender, EventArgs e) { EventHandler eh = Button2Clicked; if (eh != null) eh(this, e); } \[Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)\] public IButtonControl AcceptButton { get { return button1; } } \[Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)\] public IButtonControl CancelButton { get { return button2; } } }
}
You now have
userControl11.Button1Clicked
anduserControl11.Button2Clicked
events available in your host form like any other control's events.Dave
BTW, in software, hope and pray is not a viable strategy. (Luc Pattyn)
Visual Basic is not used by normal people so we're not covering it here. (Uncyclopedia) -
There's a few ways this can be done. The easiest is just to subscribe in the user control and raise a new event each time.
using System;
using System.ComponentModel;
using System.Windows.Forms;namespace WindowsFormsApplication1
{
public partial class UserControl1 : UserControl
{
public event EventHandler Button1Clicked;
public event EventHandler Button2Clicked;public UserControl1() { InitializeComponent(); button1.Click += new EventHandler(button1\_Click); button2.Click += new EventHandler(button2\_Click); } protected virtual void button1\_Click(object sender, EventArgs e) { EventHandler eh = Button1Clicked; if (eh != null) eh(this, e); } protected virtual void button2\_Click(object sender, EventArgs e) { EventHandler eh = Button2Clicked; if (eh != null) eh(this, e); } \[Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)\] public IButtonControl AcceptButton { get { return button1; } } \[Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)\] public IButtonControl CancelButton { get { return button2; } } }
}
You now have
userControl11.Button1Clicked
anduserControl11.Button2Clicked
events available in your host form like any other control's events.Dave
BTW, in software, hope and pray is not a viable strategy. (Luc Pattyn)
Visual Basic is not used by normal people so we're not covering it here. (Uncyclopedia)DaveyM69 wrote:
You now have userControl11.Button1Clicked and userControl11.Button2Clicked events available in your host form like any other control's events.
Thank you very very much :)
Always Keep Smiling. Yours Pankaj Nikam