我在cxgrid中添加了一个checkbox。
显示出来的结果是全部选中。
现在我想点击某一个cell后不再被选中,但是点击后没反应,并且不会触发任何事件
请大侠指导,非常感谢!

解决方案 »

  1.   

    1.首先在數據庫建立一個字段CHK,bit類型,默認值為0;
    2.設置cxGrid1DBTableView1的OptionsData的deleting\inserting屬性為false;
    3.再將cxGrid1DBTableView1Column1對應的CHK字段的options之editing設定為true;
    4.連接指定OK後,按下F9看下效果...
      

  2.   

    http://www.fish888.com/cxGrid-checkBox-t133212 按这里来也可以
      

  3.   

    能不能告诉我,当点击checkbox的时候,触发的事件是什么?
      

  4.   

    我目前查询出来的结果是有部分checkbox是被选中,一部分没有被选中。但是更具上面大侠建议后,依然点击没有反应。并且不会触发任何事件....HELP!!!
      

  5.   

    通过research发现的却要有字段,可以用dateset代替吗?
    就是说不利用数据库就可以直接点击。
    请高手指教,非常感谢!!!
      

  6.   

    1:在表中加一个字段;
    2:在DataSet读取字段,如1代表Checked 0代表UnChecked;
    3:点击cxGrid对应的字段后,DataSet会在AfterScroll事件中体现的,获取值;如若遍历cxGrid也可以针对DataSet对应的值进行遍历。
      

  7.   

    在TcxGrid中,选中目标列,在Object Inspecter中,设置该列的Properties属性,选为ChexkBox类型,然后设置它的三个子属性ValueChecked、ValueGradyed和ValueUnChecked的值,这是标准方法。如下图:
      

  8.   

    我用的是Borland Developer studio 2006,不知道和Delphi 7.0是否一样。
      

  9.   

    为了实现这个功能只好不用DB了,所以直接用Table coding 实现这个功能...
      

  10.   

    通过research,可以实现的,只是事件没有找对。
    procedure TForm1.cxGrid1DBTableView1MouseDown(Sender: TObject;
      Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
      var row : Integer;
    begin
       row := cxGrid1DBTableView1.DataController.FocusedRowIndex;
       if cxGrid1DBTableView1.ViewData.Records[row].Values[2] = '1' then
       begin
         cxGrid1DBTableView1.ViewData.Records[row].Values[2] := '2';
       end
       else
       begin
         cxGrid1DBTableView1.ViewData.Records[row].Values[2] := '1';
       end;
    end;