我的ListView的ViewStyle属性是vsReport,Checkboxes属性为True,也就是让ListView用表格显示,我想让用户在点击某一行的时候,改变Checkbox的状态,我是这样做的:
procedure TForm1.ListView1Click(Sender: TObject);
begin
  if ListView1.Selected = nil then Exit;
  ListView1.Selected.Checked := not ListView1.Selected.Checked;
end;
可是这样一来,选中某一行后再点击它的Checkbox就不能改变checkbox的状态了,不知道那位大虾有好办法

解决方案 »

  1.   

    点Checkbox会改变checkbox的状态,你的代码又改变了一次,所以等于没变。
      

  2.   

    那有没有好办法,使我既可以实现我的目的,又不影响checkbox的点击
      

  3.   

    procedure TForm1.ListView1MouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    begin
      if ListView1.Selected = nil then Exit;
      if X < 10 then Exit;
      ListView1.Selected.Checked := not ListView1.Selected.Checked;
    end;
      

  4.   

    当然还可再判断一下Button是左还是右,右就不要搞它。
      

  5.   

    哎呀,多谢swayi21(微斯人)啦!!多谢,多谢!!!这分怎么个给法,我还不知道呢,麻烦你告诉我一下,谢谢啦!!