翔如菲菲

其实天很蓝,阴云总会散;其实海不宽,此岸连彼岸.

导航

扩展控件--NumberTextBox

      
      有些时候我们要限制TextBox的输入 ,比如age  telephone等字段,故我们要在其某些事件里处理,如果那样的话下次再遇到此类情况我们又的重复操作,在此我们对其进行扩展使其只可以接受 Number输入,这里我们override 其WndProc 方法。
   1. 建立一个Bank Solution   添加一个Class Library Project named  NumberTextControl  
   2. 右键 References 选择Add Reference  添加 System.Windows.Forms  命名空间
   3. override WndProc 方法, 代码如下:
   
namespace NumberTextControl
{
    
public class NumberControl : TextBox
    
{

        
protected override void WndProc(ref Message m)
        
{
            
if (m.Msg == 0x0102 && !Char.IsControl((char)m.WParam))
            
{
                
if (Char.IsNumber((char)m.WParam))
                
{
                    
base.WndProc(ref m);
                }

                
return;
            }

            
base.WndProc(ref m);
        }

    }

}


   4. Test Project 
         再给Solution 添加一个 Windows Application Project  Named NumberFormTest 
   拖我们刚创建的NumberControl 在 Fom1上 再拖一个TextBox 控件到Form1上 Run Project Testing 。
好了我们的扩展TextBox 到此就完了, 怎么样 还行吧 。原代码:NumberTextBox


 

posted on 2007-01-24 15:01  翔如飞飞  阅读(345)  评论(0编辑  收藏  举报