读书人

在Tlistbox里用小键盘的上下键移动触发

发布时间: 2012-03-11 18:15:39 作者: rapoo

在Tlistbox里用小键盘的上下键移动触发 的事件是什么?
在Tlistbox里用小键盘的上下键移动触发 的事件是什么?

[解决办法]

Delphi(Pascal) code
procedure TWinControl.CNKeyDown(var Message: TWMKeyDown);var  Mask: Integer;begin  with Message do  begin    Result := 1;    if IsMenuKey(Message) then Exit;    if not (csDesigning in ComponentState) then    begin      if Perform(CM_CHILDKEY, CharCode, Integer(Self)) <> 0 then Exit;      Mask := 0;      case CharCode of        VK_TAB:          Mask := DLGC_WANTTAB;        VK_LEFT, VK_RIGHT, VK_UP, VK_DOWN:          Mask := DLGC_WANTARROWS;        VK_RETURN, VK_EXECUTE, VK_ESCAPE, VK_CANCEL:          Mask := DLGC_WANTALLKEYS;      end;      if (Mask <> 0) and        (Perform(CM_WANTSPECIALKEY, CharCode, 0) = 0) and        (Perform(WM_GETDLGCODE, 0, 0) and Mask = 0) and        (GetParentForm(Self).Perform(CM_DIALOGKEY,        CharCode, KeyData) <> 0) then Exit;    end;    Result := 0;  end;end; 

读书人网 >.NET

热点推荐