急:我想在一个Edit输入一个数字后就自动切换到下一个Edit,如何实现最好?(100分)

  • 主题发起人 主题发起人 wlaila
  • 开始时间 开始时间
W

wlaila

Unregistered / Unconfirmed
GUEST, unregistred user!
急:我想在一个Edit输入一个数字后就自动切换到下一个Edit,如何实现最好?
 
设form的KeyView属性为True,然后在form的KeyDown事件里加上:
if key=Vk_Return then
SendMessage(frmContData.handle,wm_nextDlgCtl,0,0);
 
可以发送WM_CHARTAB(大概是这个名字),模拟TAB键按下。
 
详细一点,我刚学阿
 
来个简单的:
procedure TForm1.Edit1Change(Sender: TObject);
begin
if Edit1.text='0' then
ActiveControl:=Edit2;
end;
 
在EDIT的Onkeypress事件中写下:
if key in ['0'..'9'] then
selectnext(self.activecontrol,true,true)
 
最好用MaskEdit用来控制让用户只能输入数字
然后在MaskEdit1的OnKeyDown事件中加入代码
MadkEdit2.SetFocus;
就好了!
 
在 Onchange 中处理
procedure TForm1.Edit1Change(Sender: TObject);
var
x:string;
begin
x:=trim(TEdit(sender).text);
if (length(x)=1) and (x[1] in ['0'..'9']) then
selectnext(activecontrol,true,true);
end;

将每个Edit 的onchange 事件都设置为 Edit1Change
 
设置Tab的顺序不就得了??
 
procedure TfrmMain.edit1KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then //回车键 其他键自己改为#XX就行了。
begin
key:=#0;
SelectNext(Sender as tWinControl, True, True );
end;
end;

 
在EDIT的Onkeypress事件中写下:
if key in ['0'..'9'] then
Edit*.SetFocus else
Edit.caption:='';
 
后退
顶部