C#.NET 封装自定义组件(控件)Dll

纵饮孤独 提交于 2019-12-09 03:56:23

封装自定义控件很简单,没什么技术含量,这里通过封装自定义的数字文本框实例简单总结一下:


【1】新建自定义控件库 -- Windows Forms Control Library




【2】添加自定义组件 -- Component Class




【3】继承TextBox,添加KeyPress事件,代码如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Windows.Forms;
 
namespace WinForms.SelfControl
{
    /// <summary>
    /// 数字文本框 -- 如果生成的Dll在工具箱中导入不了,可以直接将Dll拖入
    /// </summary>
    public partial class TextBoxNumber : TextBox
    {
        public TextBoxNumber()
        {
            InitializeComponent();
        }
 
        public TextBoxNumber(IContainer container)
        {
            container.Add(this);
 
            InitializeComponent();
 
            this.KeyPress += TextBoxNumber_KeyPress;
        }
 
        /// <summary>
        /// 只能输入数字
        /// </summary>
        void TextBoxNumber_KeyPress(object sender, KeyPressEventArgs e)
        {
            //如果输入的不是数字键,也不是回车键、Backspace键,则取消该输入
            if ( !(Char.IsNumber(e.KeyChar)) &&
                 e.KeyChar != (char)13       &&
                 e.KeyChar != (char)8 )
            {
                e.Handled = true;
            }
        }
    }
}

【4】将生成后的Dll添加到工具箱




【5】测试自定义的控件 -- 验证是否只能输入数字




【6】注意问题

必须采用AnyCPU编译,如果生成的Dll导入到工具箱有问题,可以直接将文件拖入。。。


源码:

http://download.csdn.net/detail/aoshilang2249/8172891



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!