当点击listview一列中的事件为listclick(),请问点击里面的checkbox的事件是什么?怎么不和listclick一致?

解决方案 »

  1.   

    有能在OnClick上做
    procedure TForm1.ListView1Click(Sender: TObject);
    beginend;
      

  2.   

    不行的。工试过好几次了。点击checkbox时并没触发listviewclick()事件。
      

  3.   

    还有一点是listview的类型为viewtype为vsReport的。
      

  4.   

    可以截获LVM_SETITEMSTATE消息,  你试试吧我要回家了
      

  5.   

    To楼主,按你的设置(listview的类型为viewtype为vsReport)我试过,可以的呀,是不是你的Delphi有问题,我的是D5
      

  6.   

    有了一段代码,测试一下,基本可行
    procedure TForm7.ListView1Click(Sender: TObject);
    const
      ItemIndent =4;
      CheckBoxSize =16;
    var
      I :Integer;
      P :TPoint;
      AItem :TListItem;
      R1, R2 : TRect;
    begin
      with ListView1 do
      begin
        P :=ScreenToClient(Mouse.CursorPos);
        AItem := GetItemAt(P.X, P.Y);
        if AItem <>nil then
        begin
          R1 :=AItem.DisplayRect(drSelectBounds);
          R2 :=Rect(ItemIndent, R1.Top, ItemIndent + CheckBoxSize, R1.Top + CheckBoxSize);
          if ptInRect(R2, P) then
          if AItem.Checked then
             ShowMessage(Format('Item[%d] is Checked',[AItem.Index]))
          else
            ShowMessage(Format('Item[%d] is not Checked',[AItem.Index]));
        end;
     end;
    end;