所有C# 自定义windows form 控件继承自 UserControl 在design中设计界面 在partial class中定义自定义属性和行为
注解解析
[Category("Text"),
Browsable(true),
DefaultValue(typeof(Image), null),
Description("图标")]
public Image Icon { get; set; }
Category 对应分类
Browsable 对应是否能看到
然后还有默认值和描述
这个注解使代码和 设计界面能连通
组件生命周期
form 打开:
• Control.HandleCreated
• Control.BindingContextChanged
• Form.Load
• Control.VisibleChanged
• Form.Activated
• Form.Shown
from 关闭:
• Form.Closing
• Form.FormClosing
• Form.Closed
• Form.FormClosed
• Form.Deactivate
control ,change focus:(使用 tab ,shift + tab等等,或是调用Select,SelectNextControl,或是使用当前form的ActiveControl)
• Enter
• GotFocus
• Leave
• Validating
• Validated
• LostFocus
control ,change focus:(使用鼠标,或是通过调用Focus方法)
• Enter
• GotFocus
• LostFocus
• Leave
• Validating
• Validated
特别是load 事件 可以再InitializeComponent 绑定加载事件 然后 添加渲染后回调操作
添加自定义事件
public delegate void PageChangeDelegate();//
/// <summary>
/// 当前页改变时发生的事件
/// </summary>
[Description("当前页改变时发生的事件"), Category("分页设置")]
public event PageChangeDelegate PageChanged;
在具体的业务流程中调用
private void btnFirst_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
//设置当前页
CurrentPage = 1;
//设置上一页、下一页是否可用以及当前页按钮字体颜色
SetBtnPrePageAndBtnNextPage();
//调用注册事件
if (PageChanged != null) PageChanged();
}