1.新添加组件

2.制作组件界面

3.右键查看代码
编写如下代码,包含属性设计和事件设计
cs
public partial class UserControl1 : UserControl
{
public UserControl1()
{
InitializeComponent();
}
// 一、自定义属性
[Category("自定义属性"), Description("左边按钮文本")]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
public string LeftBtnText
{
get => button1.Text;
set => button1.Text = value;
}
[Category("自定义属性"), Description("右边按钮文本")]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
public string RightBtnText
{
get => button2.Text;
set => button2.Text = value;
}
//二、事件
/// <summary>
/// 左边按钮订阅了该事件(原生事件)
/// </summary>
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show("左边按钮被点击了!");
}
[Category("自定义事件"), Description("点击右边按钮时触发")]
public event EventHandler RightButtonClicked;
/// <summary>
/// 右边按钮订阅了该事件(自定义事件)
/// </summary>
private void button2_Click(object sender, EventArgs e)
{
// 返回一个string ,内容是"右边按钮被点击了!"
// 要返回的内容
string message = "右边按钮被点击了!";
// 触发公开事件,把消息传给外部
RightButtonClicked?.Invoke(message, EventArgs.Empty);
}
}
4.重新编译整个类库
并且拖动这个自定义组件到Winform窗体上

5.使用自定义属性

6.使用自定义事件

编写如下代码
cs
private void userControl11_RightButtonClicked(object sender, EventArgs e)
{
var data = sender.ToString();
}
运行项目,点击右键时,能正常返回结果。
