最近在研究C#操作Api。写了点例子,拿出来分享。
先来第一个吧。呵呵。最基本的TextBox。

相信在项目的开发过程中应该都会遇到要求TextBox实现特定的输入,我原来的处理方法是正则,呵呵 。比较恶心的方法。
现在发现用Api是如此的方便,代码示例下:

       //右键菜单消息
        public const int WM_CONTEXTMENU = 0x007b;

        //粘贴消息
        public const int WM_PASTE = 0x0302;

        //输入字符消息
        public const int WM_CHAR = 0x0102;



       protected override void WndProc(ref Message m)
        {
            if (m.Msg == WM_CHAR)
            {
                int keyChar = (Int32)m.WParam;
                bool charOk = (keyChar > 47 && keyChar < 58) || keyChar == 8 || keyChar == 3 || keyChar == 22 || keyChar == 24;

                if (!charOk)
                {
                    return;
                }
            }

            //控制粘贴的。
            if (m.Msg == WM_PASTE)
            {
                IDataObject iData = Clipboard.GetDataObject();

                if (iData.GetDataPresent(DataFormats.Text))
                {
                    string str = (string)iData.GetData(DataFormats.Text);
                    if (!Regex.IsMatch(str, @"^(\d{1,})$"))
                    {
                        return;
                    }
                }
            }
            base.WndProc(ref m);
        }

代码很简单。。呵呵。今天先这样吧。88

posted on 2008-04-11 09:57  Mars.Lee  阅读(233)  评论(0)    收藏  举报