2009年10月19日星期一

bcb中控制Edit控件只输入数字


在BCB中控制Edit控件的输入是件很麻烦的事,在这一点上BCB做的没有VC好。但是既然做为程序员,那就没有什么可以被难倒的。我们可以采取自己写代码控制的方法来实现对其的控制。这里只说两种简单的方法,抛砖引玉吧。



第一种:控制事件方法


在Edit控件的KeyPress事件中控制输入的Key,把不需要的Key设置成0,就OK了。例如:


void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key)

{

    //控制Edit1只能输入数字

    if ( (Key<'0'||Key>'9') && (Key != '\b') )

    {

        Key = 0;

    }

}

这种方法只能在KeyPress事件中,不能在KeyDown或KeyUp事件中。


第二种方法:调用API的方法


不说了看代码吧


void __fastcall TForm1::FormShow(TObject *Sender)

{

    //控制Edit2只能输入数字

    SetWindowLong(Edit2->Handle, GWL_STYLE, GetWindowLong(Edit2->Handle,GWL_STYLE)|ES_NUMBER);

}


或许朋友们有更好的方法,请告诉我。



没有评论:

发表评论