listview 的viewstyle设定为vsReport,左侧显示checkbox框时,如何屏蔽掉每个项目的单击checkbox的事件?也就是单击社checkbox框不起作用。

解决方案 »

  1.   

    大家没明白我的意思。这个checkbox还必须要,必须设为true,他的选定是通过单击某一个项目时设定为listview.selected.checked:=true,但是单击checkbox小框时不起作用。
      

  2.   

    procedure TForm1.ListView1Change(Sender: TObject; Item: TListItem;
      Change: TItemChange);
    begin
      Item.Checked := True;
    end;
      

  3.   

    感谢大家的参与,也许我说的不明白,下面我详细说一下具体过程和问题:
    我单击一项目时,此项目的checked:=true,接着对此选定项目的一些内容改变,再次单击取消选择。问题时我不单击项目只单击或用右键单击左边的选择框,此时此项目也被选择(checked:=true)但没选定,且没有事件被激发。
    问题是我想让单击选择框的事件不起作用或激发一个事件。
      

  4.   


    procedure TForm1.ListView1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    var
      r : TRect;
      aItem: TListItem;
    begin
       aItem := ListView1.GetItemAt(X,Y);
       if (aItem = nil) then Exit;
       r:=aItem.DisplayRect(drBounds);
       r.Right :=aItem.DisplayRect(drLabel).Left;
       if (X >r.Left) and (X <r.Right) and (Y>R.Top) and (Y<R.Bottom) then begin
           //鼠标在checkbox点击   end;
    end;