- C#.NET 封装自定义组件(控件)Dll
-
-
封装自定义控件很简单,没什么技术含量,这里通过封装自定义的数字文本框实例简单总结一下:
【1】新建自定义控件库 -- Windows Forms Control Library
frameborder="0" scrolling="no" vspace="0" hspace="0" style="margin: 0px; padding: 0px; border: currentColor; border-image: none; width: 100%; height: 74px; vertical-align: baseline; display: block; position: static;" allowtransparency="true">
【2】添加自定义组件 -- Component Class
frameborder="0" scrolling="no" vspace="0" hspace="0" style="margin: 0px; padding: 0px; border: currentColor; border-image: none; width: 100%; height: 74px; vertical-align: baseline; display: block; position: static;" allowtransparency="true">
【3】继承TextBox,添加KeyPress事件,代码如下:
1234567891011121314151617181920212223242526272829303132333435363738394041424344using 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导入到工具箱有问题,可以直接将文件拖入。。。
<img class="keylink" style="width: 630px; height: 197.12px;" alt="n块ズ…�" src="http://www.2cto.com/uploadfile/Collfiles/20141119/20141119084206323.jpg" ym"="" target="_blank">源码:
- 上一篇: c#中Lock(锁)的研究以及跨线程UI的操作
- 下一篇: c#MD5加密
- 相关文章