如何使按下Enter(回车)键后使焦点自动跳到窗体上的下一个控件上?其实也就是Enter模仿tab键的功能.我在Form的keyXXXX事件中写代码,但是不起作用.
解决方案 »
- 未曾关注的问题,相信你也有!以下两种写法那个 好
- 从SQL server导出数据到Access 出错 大侠帮看看
- access多张数据表的求和问题
- 关于第三方控件的问题!在线等待!
- 如何将多个图片压缩成为mepg格式的影像文件?1000分!一定给!
- 关于DBgrid单元格根据条件上色的问题 请高手解答~~
- 做一个三层treeviews树,100分大奉送
- 关于treeview里节点选取的问题
- 如何把菜单加到工具条上?
- 大家都想知道程的序员待遇问题:所在地、薪水、工作性质。我们都在同一战壕上,面对老板我们心里应该有个数,想吹牛的朋友请您忍一忍。
- 太阳输了!!!!收分!!!!
- 简单的SQL问题,我不懂ADO,懂的进来看看就知道了!解决就结,来者有分
procedure SetReturn(Sender: TObject; Key: Word);
begin
case Key of
Vk_Return:
begin
Sendkeys('{TAB}');
end;
Vk_UP:
begin
Sendkeys('~{TAB}');
end;
end;
end;
function SendKeys(S: String): TSendKeyError;
{ This is the one entry point. Based on the string passed in the S }
{ parameter, this function creates a list of keyup/keydown messages, }
{ sets a JournalPlayback hook, and replays the keystroke messages. }
begin
Result := sk_None; // assume success
try if Playing then raise ESKAlreadyPlaying.Create('');
MessageList := TMessageList.Create; // create list of messages
ProcessKey(S); // create messages from string
StartPlayback; // set hook and play back messages
except
{ if an exception occurs, return an error code, and clean up }
on E:ESendKeyError do begin
MessageList.Free;
if E is ESKSetHookError then
Result := sk_FailSetHook
else if E is ESKInvalidToken then
Result := sk_InvalidToken
else if E is ESKAlreadyPlaying then
Result := sk_AlreadyPlaying;
end
else
{ Catch-all exception handler }
Result := sk_UnknownError;
end;
end;
Shift: TShiftState);
begin
if key = vk_return then
perform(WM_NEXTDLGCTL, 0, 0);
end;
var Key: Char);
begin
if (key = #13) then
begin
Perform(WM_NEXTDLGCTL,0,0);
end;
end;
>>
呵呵,人有时是一时糊涂,问题其实很简单的,发了贴后我就想起来了,要设个kepreivew,所以就自己回了个贴
SELECTNEXT(ACTIVECONTROL,TRUE,TRUE)
www.eQmis.com
eqmis高手是什么样实现吧!!!!!!
begin
if Key = #13 then
SelectNext(Sender as TWinControl, True, True);
end;
在每个需要相应enter键的控件的ONKEYPRESS事件中都填写如上代码。
SELECTNEXT(ACTIVECONTROL,TRUE,TRUE)