如何自动移动光标(100分)

  • 主题发起人 breezepine
  • 开始时间
B

breezepine

Unregistered / Unconfirmed
GUEST, unregistred user!
一个edit控件,当输入内容的长度达到maxlength时,
光标按照taborder的顺序自动移到下一个edit控件,如何实现?
 
Edit1Change 事件 或KeyPress事件
if length(edit1.Text)=edit1.MaxLength then
self.FindNextControl(nil,false,true,false).setfocus
//如edit1.TabOrder值为本单元中最大 button1.SetFocus;
 
smallbs,按照你的代码,光标移动到taborder最大的控件上去了。
 
呵呵,你在FORM上用 TAB order 将EDIT按顺序排好嘛
 
排好了还是那样。
从Taborder=0一下跳到Taborder=4上去了(一共5个edit)。
 
改成如下
if length(edit1.Text)=edit1.MaxLength then
begin
Perform(CM_DIALOGKEY,VK_TAB,0);
end;
 
QuickSilver就是厉害,佩服,学习
 
如果那些edit全部是动态生成的,该怎么办?请指教。
 
Form的Keypreview设为True,在KeyUp事件中写入如下代码。
procedure TForm1.FormKeyUp(Sender: TObject;
var Key: Word;
Shift: TShiftState);
begin
if ActiveControl is Tedit then
begin
if length(Tedit(ActiveControl).text)=Tedit(ActiveControl).MaxLength then
begin
Perform(CM_DIALOGKEY,VK_TAB,0);
end;
end;
end;
 
接受答案了.
 
顶部