超简单问题,如何让StringGrid的右键也能选择焦点,像左键一样

解决方案 »

  1.   

    procedure TForm1.DBGrid1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    begin
      if Button = mbRight then
        Button := mbLeft;
    end;
      

  2.   

    procedure TForm1.StringGrid1MouseDown(Sender: TObject;
      Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
    begin
       if Button = mbRight then
         SystemParametersInfo(SPI_SETMOUSEBUTTONSWAP, 1, nil, 0)
       else
         SystemParametersInfo(SPI_SETMOUSEBUTTONSWAP, 0, nil, 0)
    end;
      

  3.   

    前面的都不对, 我犯糊涂了. procedure TForm1.StringGrid1MouseDown(Sender: TObject;
      Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
    var
      MousePos: TSmallPoint;
    begin
      if Button = mbRight then
      begin
        MousePos.x := x;
        MousePos.y := y;
        SendMessage(StringGrid1.Handle, WM_LBUTTONDOWN, 0, Integer(MousePos));
      end;
    end;