首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

怎么实现enter(回车键)跟tab键的效果一样,在回车时自动使Taborder比自己大的物件获得焦点

2012-03-01 
如何实现enter(回车键)跟tab键的效果一样,在回车时自动使Taborder比自己大的物件获得焦点如何实现enter(回

如何实现enter(回车键)跟tab键的效果一样,在回车时自动使Taborder比自己大的物件获得焦点
如何实现enter(回车键)跟tab键的效果一样,在回车时自动使Taborder比自己大1的物件获得焦点~~如果大1的物件visible=false在继续往下给焦点????

[解决办法]
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
begin
if not (Activecontrol is Tmemo) then
begin
key:=#0;
keybd_event(vk_tab,mapvirtualkey(vk_tab,0),0,0);
end;
end;

end;
[解决办法]
用DosMove控件或者用以下代码
procedure TFmXXX.OnSimulateTabKey(Sender: TObject; var Key: word; Shift : TShiftState);
begin
if ((Key = VK_DOWN) or (Key = VK_RETURN)) then
self.Perform(WM_NEXTDLGCTL, 0, 0) //下移
else if (Key = VK_UP) then
self.Perform(WM_NEXTDLGCTL, 1, 0); //上移
end;
end;

//初始化
procedure TFmXXX.FormCreate(Sender: TObject);
begin
self.OnKeyDown := OnSimulateTabKey;
end;
[解决办法]

Delphi(Pascal) code
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char); begin if key=#13 then         begin           if not (Activecontrol is Tmemo) then           begin             key:=#0;             keybd_event(vk_tab,mapvirtualkey(vk_tab,0),0,0);           end;         end; end;
[解决办法]
所有需要获取焦点控件共用下面的OnKeyDown事件:

procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key = VK_RETURN then
PostMessage(Handle, WM_KEYDOWN, VK_TAB, 0);
end;

[解决办法]
在onkeypress 里写 
if key=#13 then
下一个控件.setfucse;
就可以了。前几天刚学会,试一下,可以就给分。。
[解决办法]
在onkeypress里写
If Key = #13 Then SelectNext(TwinControl(Sender), True, True);

然后在其它的控件的onkeypress里直接选上一个控件的名称就可以了。不用一个一个都写,很方便

热点排行