封装自定义控件——c#

转自:https://blog.csdn.net/aoshilang2249/article/details/41252781?utm_medium=distribute.pc_relevant_bbs_down.none-task-blog-baidujs-2.nonecase&depth_1-utm_source=distribute.pc_relevant_bbs_down.none-task-blog-baidujs-2.nonecase

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

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

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

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

 
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导入到工具箱有问题,可以直接将文件拖入。。。

原文地址:https://www.cnblogs.com/eve612/p/14278619.html