在Listview中单击它的Checkbox,我想根据某些条件限制不让选中,即单击该Checkbox后,如果不符合条件,则取消选择,不知是事件?请指教!

解决方案 »

  1.   

    当然试过了
    在listview的onclick事件里判断就行了
    给个例子if Pos('牛',ListView1.Selected.Caption)>1 then
            ListView1.Selected.Checked :=True;
      

  2.   

    如果你非要判断鼠标是不是点在checkbox那也行
    网络上有现成的代码,在mouseup事件中判断procedure   TForm1.ListView1MouseUp(Sender:   TObject;   Button:   TMouseButton;     
          Shift:   TShiftState;   X,   Y:   Integer);     
      var     
          Item:   TListItem;     
          HitTest:   THitTests;     
      begin     
          //   Which   item   belongs   to   the   checkbox     
          Item   :=   ListView1.GetItemAt(x,   y);     
        
          //   What   kind   of   thing   was   hit   on   the   item     
          HitTest   :=   ListView1.GetHitTestInfoAt(x,   y);     
        
          //   If   an   Item   was   hit   and   exactly   his   checkbox     
          if   (Item   <>   nil)   and   (HitTest   =   [htOnStateIcon])   then     
          begin     
              /////Click呢CheckBox,处理即可   
          end;     
      end;