选中时该项变为蓝色,现在我需要用鼠标去选另外一个listview中的项目来进行搭配,并且希望现在的选中项颜色保持,如何实现?万分感谢!

解决方案 »

  1.   

    对所有的TWinControl派生类都可以这样处理,屏蔽失焦消息(你可以直接修改VCL或自己重写一个新的派生类):
    ......
     procedure wndproc(var message:Tmessage);override;....procedure TXXXXXX.wndproc(var message: Tmessage);
    begin
     if message.msg = WM_KillFocus then exit;
     inherited;
    end;
    不仅仅是失焦消息,其它你不需要的都可以按你的要求屏蔽的,但你一定要了解系统对应的是哪个消息。
      

  2.   

    上面那样会不会有问题呵ListView 有个 HideSelection 设成 false, color 虽然变成 glay 但选中状态还是很明确的
      

  3.   

    呵呵,没有问题哈,这是一个通用办法,对于没有HIDESELECTION属性的一样适用哈。
      

  4.   

    对于ListView即使HideSelection 设成 true, 只要在CustomDrawItem事件中写入适当的代码,一样可以达到楼主的要求哈。......
       if item.Selected then
        begin
          Sender.Canvas.Brush.Color := clBlack;
          Sender.Canvas.Font.Color := clYellow;
        end;
    ......