抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

自定义文本框

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
45
46
47
48
49
50
51
52
53
54
/// <summary>
/// 自定义文本框
/// 1.只能输入数值, 限制输入两位小数
/// 2.禁止粘贴
/// </summary>
public class ExTextBoxFloat : TextBox
{
protected override void OnKeyPress(KeyPressEventArgs e)
{
base.OnKeyPress(e);
if (e.KeyChar != 8)
{
if (this.Text.Length == 4)//限制长度为4
e.Handled = true;
if ((e.KeyChar < 48 || e.KeyChar > 57) && e.KeyChar != '.')
e.Handled = true;
// 小数点只能输入一次
if (e.KeyChar == '.' && this.Text.IndexOf('.') != -1)
{
e.Handled = true;
}

// 第一位不能为小数点
if (e.KeyChar == '.' && this.Text == "")
{
e.Handled = true;
}

// 第一位是0,第二位必须为小数点
if (e.KeyChar != '.' && this.Text == "0")
{
e.Handled = true;
}

// 有小数只保留2位
if (this.Text.IndexOf('.') != -1)
{
if (this.Text.Length - this.Text.IndexOf('.') - 1 == 2)
{
e.Handled = true;
}
}
}
}
protected override void WndProc(ref Message m)
{
if (m.Msg == 0x0302)//0x0302 是粘贴消息
{
m.Result = IntPtr.Zero;//拦截消息
return;
}
base.WndProc(ref m);//如果不是粘贴消息,则交给其它基类处理
}
}

调用

定义好文本框后,直接在工具箱界面中拖出定义好的新文本框控件即可。

CSharpExtensionTextbox

评论