一:应用及问题描述:
1.自定义一个控件UCImageSource,自定义一个BtnClick事件
2.UCImageSource控件内有一个Label控件,名为lblText
3.在frmMain窗口添加此UCImageSource控件,控件名ucImageSource1.运行时frmMain时,点击ucImageSource1,执行BtnClick.
4.当点击到UCImageSource上的Label控件lblText时,如何执行BtnClick?
二:控件上的代码(不相干代码省略):
新建一个UCButtonImage.cs文件,为自定义控件文件
namespace My_Controls.Controls : Control
{
//设置默认事件为要新增的事件BtnClick
[DefaultEvent("BtnClick")]
public partial class UCImageSource
{
/// <summary>
/// 按钮点击事件
/// </summary>
[Description("按钮点击事件"), Category("自定义")]
public event EventHandler BtnClick;
private void UCImageSource_Click(object sender, EventArgs e)
{
if (BtnClick != null)
{
BtnClick(sender, e);
}
}
}
}
//此自定义控件内有一个Label控件:lblText,其Click事件如下:
三:新建frmMain.cs,添加上面的控件,控件名为ucImageSource1,在属性事件页面上,双击BtnClick右边栏,在ucImageSource1_BtnClick上添加代码进行测试.
private void ucImageSource1_BtnClick(object sender, EventArgs e)
{
MessageBox.Show("Test");
}
此时,点击到的lblText也响应了控件的BtnClick事件.