我想在双击DBGRID的一列后将选中记录的颜色设为绿色,并保持该记录为被选中状态,请问应该怎么写呢

解决方案 »

  1.   

    楼主发贴之前肯定没搜索
    csdn类似的贴子一把一把的……
      

  2.   

    你的问题我很早时遇到过,我当时没有多想就是把控件TDBGrid类在选中时的那段代码给改了!
    直接把兰色改成了自己想要的颜色!
      

  3.   

    先将dbgrid的dgrowselected属性设为true;然后在dbgrid的DrawColumnCel事件里写:
    procedure TFrmQuery.DBGrid1DrawColumnCell(Sender: TObject;
      const Rect: TRect; DataCol: Integer; Column: TColumn;
      State: TGridDrawState);
    begin
    if gdSelected  in state then
        dbgrid1.Canvas.Brush.Color:=clgreen;
         dbgrid1.DefaultDrawColumnCell(rect,datacol,column,state);end;
      

  4.   

    哦,谢谢啊,虽然我自己已经解决了。
    还有一个小问题,如何能在双击DBGRID的一行后将该行一直保持为被选中状态呢。问完这个问题后结贴了,如果大家觉得分少的话,可以再加
      

  5.   

    呵呵,是我没说明白,我的想法是在可以多选的条件下,每双击一条记录就使该记录处于被选定状态,最后用TBookMarkList接收所有的被选中记录。
      

  6.   

    如何能在双击DBGRID的一行后将该行一直保持为被选中状态呢。
    ------------------------------------------------------
    是什么意思?
      

  7.   

    将你所选中的行数存在一个数组里,然后还是通过DBGrid1DrawColumnCell事件,判断dbgrid当前行是否在数组里面,如果是还是执行上面的代码改变颜色