您的位置:首页 > 其它

只能输入数字的文本框(重写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);

}

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: