我想在dbgrid中增加类似checkbox的选择,这样我可以通过此checkbox选择到我要的记录。然后进行处理。

解决方案 »

  1.   

    发一个dbcheckbox,visible属性设置为false;dbgrid的defaultdrawing属性设置为True
    procedure TForm1.Dbgrid1drawcolumncell(sender:Tobject;Const Rect:Trect;.....);
    begin
    if (gdfocused in state)and(column.field=Table1senior) then
    begin
    dbcheckbox1.setbount(rect.left+dbgrid1.left+1,
    Rect.top+dbgrid1.top+1,
    rect.right-rect.left,
    rect.bottom-rect.top);
    end;
    end;procedure TForm1.dbgird1colenter(...);
    begin
    if dbgrid1.columns[dbgrid1.selectedindex].field=table1senior then
    dbcheckbox1.visible:=true
    else
    dbcheckbox1.visible:=false;
    end;procedure TForm1.dbgrid1keypress(..);
    begin
    if dbcheckbox1.visible and (ord(key)>31) then
    begin
    key:=#0;
    table1.edit1;
    dbcheckbox1.checked:=not dbcheckbox1.checked;
    dbcheckbox1.field.asbooolean:=dbcheckbox1.checked;
    end;
    end; 
      

  2.   

    http://search.csdn.net/Expert/topic/749/749684.xml?temp=.4698603
      

  3.   

    DrawFrameControl(DBGrid1.Canvas.Handle,              Rect,              DFC_BUTTON,              CtrlState[Column.Field.AsBoolean]);
      

  4.   

    我想checkbox的这一列不连数据库的值。如何做。谢谢。
      

  5.   

    双击dbgrid单出一个对话框,在里面新建一个Column,选择这个column,看他的属性,有一个picklist
    属性!填写它!
    在运行程序后,单机这个列,就有类似checkbox的下拉列表!
      

  6.   

    我不是要combobox,是要在显示出一个checkbox直接先择。
      

  7.   

    就是在dbgrid相应的cell里,动态添加checkbox就可以了。