只允许输入数字的WinForms.TextBox

const int WM_CHAR = 0x0102;
protected override void WndProc(ref System.Windows.Forms.Message m)
{
    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 ||
             (int)m.WParam == (int)Keys.Enter)
        {
            base.WndProc(ref m);
        }
    }
    else
    {
        base.WndProc(ref m);
    }
}

代码中接管了控件的消息处理,这对我们控制用户的输入对象提供了一个新的思路,借由此,可以实现其他更多的用户输入控制。

我06年刚接触C#的时候,看到这段代码,真的是相当的景仰和佩服,嘿嘿。

posted on 2009-10-18 20:24  Hustwing  阅读(317)  评论(1)    收藏  举报

导航