大家帮帮忙,用dbgrid的多选效果不行,只能按住ctrl一条条的点,也不能用shift

解决方案 »

  1.   

    在dbgrid上无法完成你这样的操作,因为dbgrid是直接与数据连接的,没有数据作后盾,就会提示错误。
    除非你自己编写一个基于tdbgrid的控件。建议你使用tstringgrid的控件或者其他类似的三方控件。
      

  2.   

    你可以在dbgrid中增加一个空列,然后在这个空列的每个单元格中画上checkbox控件(根据记录数动态创建)然后再根据各个checkbox的值来决定是否删除该记录。这样并没有将checkbox与dbgrid合成一体,但可达到同样的效果。而且可以根据需要调整。
      

  3.   

    自己写一个控件,实现一个方法就可以了,在BDgrid上加一列。function addCheckBox(AcolNum : Integer):integer;
    指定是第几列
    画上checkbox控件(根据记录数动态创建)然后再根据各个checkbox的值来决定是否删除该记录。这样并没有将checkbox与dbgrid合成一体,但可达到同样的效果。而且可以根据需要调整。
      

  4.   

    在打开数据集的时候,SQL这么写:
    select '0' as Selected, * from tblYourTable然后在界面上就可以用CheckBox来操作这个字段是否打勾。最后在POST数据集的时候,将该字段设为READONLY,过滤该字段的提交;
    TADODateSet.FieldByName('Selected').ReadOnly := True;
      

  5.   

    DBGrid有这个功能:Options->dgMultiSelect;处理选中的记录,通过数据集的书签功能即可。