只能输入数字的文本框(重写WndProc)
2006-05-19 23:39
162 查看
在我们平时的控件运用中,时常会有这样的要求----一个TextBox中只允许用户去输入数字,而不允许其他的字符输入,通常的做法是截取TextBox的KeyDown事件,然后判断输入的字符的Char是否是0-9之间的数字。今天我要向你介绍另外一种做法,即重写控件的WndProc方法。这个方法既简单又准确,写这个控件主要不是为了向你介绍只允许用户输入数字的TextBox,而是希望大家善于运用WndProc方法来处理Windows消息。
using System;
using System.Windows.Forms;
namespace WindowsControlLibrary1
{
/**//// <summary>
/// 只能输入数字的文本框
/// </summary>
public class NumTextBox : TextBox
{
public NumTextBox()
{
}
protected override void WndProc(ref Message m)
{
int WM_CHAR = 0x0102;
if (m.Msg == WM_CHAR)
{
if (((char)m.WParam >= '0') && ((char)m.WParam <= '9') ||
(int)m.WParam == (int)Keys.Back || (int)m.WParam == (int)Keys.Delete)
{
base.WndProc(ref m);
}
}
else
{
base.WndProc(ref m);
}
}
}
}
using System;
using System.Windows.Forms;
namespace WindowsControlLibrary1
{
/**//// <summary>
/// 只能输入数字的文本框
/// </summary>
public class NumTextBox : TextBox
{
public NumTextBox()
{
}
protected override void WndProc(ref Message m)
{
int WM_CHAR = 0x0102;
if (m.Msg == WM_CHAR)
{
if (((char)m.WParam >= '0') && ((char)m.WParam <= '9') ||
(int)m.WParam == (int)Keys.Back || (int)m.WParam == (int)Keys.Delete)
{
base.WndProc(ref m);
}
}
else
{
base.WndProc(ref m);
}
}
}
}
相关文章推荐
- 用正则表达式限制文本框只能输入数字,小数点,英文字母,汉字等
- js正则表达式限制文本框只能输入数字,小数点,英文字母,汉字等各类代码
- HTML 限制文本框只能输入数字 onkeyup+onafterpaste
- C#--第10周实验--任务2--设计一个窗体--文本框只能输入0至9这十种数字,且长度最多8个
- ios 文本框只能输入数字保留两位小数和只能输入数字
- [小技巧]文本框中限制只能输入数字,也不允许Ctrl+V
- 文本框 只能输入数字 正则表达式
- js控制文本框只能输入中文、英文、数字与指定特殊符号
- js控制文本框只能输入数字
- 用javascript限制一个文本框只能输入数字
- 自己写的 限制文本框TEdit中只能输入数字
- 文本框只能输入数字
- .net(c#) winform文本框只能输入数字,不能其他非法字符
- vb.net限制文本框只能输入数字
- 只能输入数字的文本框-php
- Javascript控制文本框只能输入数字
- vb.net 限定文本框只能输入数字
- CnCrypt代码 之 限制只能输入数字的文本框
- C# winform中文本框限制只能输入数字和字母,退格键
- 使文本框只能输入数字