怎样让回车键在edit里的反应是tab键的功能?(50分)

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

wanglong1

Unregistered / Unconfirmed
GUEST, unregistred user!
怎样让回车键在edit里的反应是tab键的功能?
 
formkpreview:=true;
formkeypress事件 加到一个窗体,然后、其他窗体以次为父窗体,可以共享此事件
With Form AS TForm Do
; Case Key Of
; ;VK_Return://key=#13
; ; Begin
; ; If not (ActiveControl Is TDBGrid) Then
; ; ;Begin
; ; ; PerForm(WM_NEXTDLGCTL,0,0);
; ; ;End
; ; Else If (ActiveControl IS TDBGrid) Then
; ; ;With TDBGrid(ActiveControl) Do
; ; ; If selectedIndex<(FieldCount-1) Then
; ; ; ; ;selectedIndex:=selectedIndex+1
; ; ; Else
; ; ; ; selectedIndex:=0;
; ; End;
 
if (Key = #13) then
;begin
; key := #0;
; Perform(WM_NEXTDLGCTL, 0, 0);
;end;
 
function FormKeyPreview(AForm:TForm;var Key:Word;Shift:TShiftState;):Boolean;
var
; w:TWinControl;
begin
; Result := false;
; case Key of
; ; VK_RETURN:
; ; ; ; begin
; ; ; ; ; if (AForm.ActiveControl is TEdit) then
; ; ; ; ; ; begin
; ; ; ; ; ; ; W := TWinControl(AForm).FindNextControls(AForm.ActiveControl,True,
; ; ; ; ; ; ; ; ; ; ; True,False);
; ; ; ; ; ; ; AForm.ActiveControl := W;
; ; ; ; ; ; ; Result := True;
; ; ; ; ; ; end;
; ; ; ; end;
; ; else
; ; ; exit;
; end;
end;
 
在form的onkeypreview事件中加入:
; if key=#13 then { 判断是按执行键}
; if not (ActiveControl is TDbgrid) Then
; Begin { 不是在TDbgrid控件内}
; ; key:=#0;
; ; perform(WM_NEXTDLGCTL,0,0);{移动到下一个控件}
; end else
; if (ActiveControl is TDbgrid) Then{是在 TDbgrid 控件内}
; begin
; ; With TDbgrid(ActiveControl) Do
; ; if Selectedindex<(FieldCount-1) then
; ; Selectedindex:=Selectedindex+1{ 移动到下一字段}
; ; else Selectedindex:=0;
; ; end;
并在keypreview属性中设为true
 
多人接受答案了。
 
后退
顶部