class myTextBox : System.Windows.Forms.TextBox
{
protected override bool ProcessKeyEventArgs(ref Message m)
{
int s=m.Wparam.ToInt32();
if(m.Msg==0x0102)
{
if((s<48)||(s>57)) //这里是需要屏蔽的字符(ASCII)
return true;
}
return base.ProcessKeyEventArgs (ref m);
}
}
之所以用继承,的原因,是因为虽然我们能拦截到ProcessKey事件,但是此时字符已经输入进去了。难以实现屏蔽的作用(即使屏蔽也不是真的屏蔽,而是等输入完再删除掉。)