很多时候我们需要使用到自定义控件 而在C#中 我们主要以3中方式创建自定义控件,还有些需要注意的地方时常被忽略 比如Click事件,用户控件的Click并不像系统的Button单击
1.继承自.NET类库中已有的控件 如TextBox MenuStrip Pannel
2.继承自Control类
3.继承自UserControl类
下面是3个小示例
1.继承自类库中现有的控件
下面自定义一个ExtendTextBox 该控件扩展了一个属性,可以现在文本框只能输入数字,字母或者所有字符
1 public class ExtendTextBox : System.Windows.Forms.TextBox
2 {
3 private AllowType _allowType = AllowType.All;
4 public AllowType AllowType
5 {
6 get { return _allowType; }
7 set { _allowType = value; }
8 }
9
10 protected override void OnKeyPress(System.Windows.Forms.KeyPressEventArgs e)
11 {
12 //设置此属性为true 基方法将不再处理此KeyPress事件
13 e.Handled = true;
14
15 if (_allowType == AllowType.Number)
16 {
17 //如果输入是0-9 交由基方法处理 允许输入
18 if (e.KeyChar >= '0' && e.KeyChar <= '9')
19 e.Handled = false;
20 }
21 else if (_allowType == AllowType.Letter)
22 {
23 //如果输入是A-Z或a-z 交由基方法处理 允许输入
24 if (e.KeyChar >= 'A' && e.KeyChar <= 'z')
25 e.Handled = false;
26 }
27 else if (_allowType == AllowType.All)
28 {
29 e.Handled =
C#自定义控件的3种方式
最新推荐文章于 2024-06-12 11:45:10 发布