当TListView被激活时就暂时Disable菜单的快捷键,而当TListView不处于选中状态时,就恢复菜单的快捷键。

解决方案 »

  1.   

    如果是Edit控件,倒是可以屏蔽,比如下面的代码(Application.OnMessage):
    procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
      var Handled: Boolean);
    begin
    if (Msg.message = WM_KEYDOWN) then
      begin
        if (Msg.hwnd = Edit1.Handle) and (Msg.wParam = VK_DELETE) then
        begin
          Edit1.Perform(Msg.message, Msg.wParam, Msg.lParam);
          Handled := True;
        end;
      end;
    end;但是ListView却不行,因为ListView在编辑时,触发这个事件的Handle不是ListView.Handle,而是另外一个窗口的Handle。