如图
我有三个edit,分别是edit1到edit3
我就是想当我按下的时候,光标由edit1切到edit2,,再按下时光标由edit2切到edit3,,按上又切回前一个,
大家可以用edit1.setfocus,不过如果用了两个setfocus就有问题,
如果有自己的方法也行,,谢谢啦
如图
我有三个edit,分别是edit1到edit3
我就是想当我按下的时候,光标由edit1切到edit2,,再按下时光标由edit2切到edit3,,按上又切回前一个,
大家可以用edit1.setfocus,不过如果用了两个setfocus就有问题,
如果有自己的方法也行,,谢谢啦
非常简单
procedure TForm2.Edit1Click(Sender: TObject);
begin
SendMessage(Edit2.Handle, WM_SETFOCUS, 0, 0);
end;
procedure TForm2.Edit2Click(Sender: TObject);
begin
SendMessage(Edit3.Handle, WM_SETFOCUS, 0, 0);
end;
按下的什么键?回车?Tab
如果你把TabOrder 属性设置后,Tab键按后,可以容易实现
如果是回车需要增加代码,判断每一个KeyDown事件,用edit1.setfocus等来实现。
把你的意思详细描述一下
代码如下:
unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
type TForm1 = class(TForm) Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; procedure Edit1KeyPress(Sender: TObject; var Key: Char); procedure Edit2KeyPress(Sender: TObject; var Key: Char); procedure Edit3KeyPress(Sender: TObject; var Key: Char); private { Private declarations } public { Public declarations } end;
var Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); begin edit2.SetFocus; end;
procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char); begin edit3.SetFocus; end;
procedure TForm1.Edit3KeyPress(Sender: TObject; var Key: Char); begin edit1.SetFocus; end;
end.