我想在TDBGrid中建立一个DBCheckBox控件,但是发现该控件不能被使用,具体代码是:constructor TDBMyGrid.Create(AOwner:TComponent);//TDBMyGrid是继承的一个自定义类
begin
  inherited;
  ControlStyle:=[csAcceptsControls]+ControlStyle;
  FDBCheckBox:=TDBCheckBox.Create(AOwner); //FDBCheckBox是一个TDBCheckBox对象
  with FDBCheckBox do begin
    Visible:=False;
    Parent:=Self;//如果这里是Parent:=TWinControl(AOwner)就可以了
    Left:=10;
    Top:=30;
  end;
end;然后在检查列是否是DataType=ftBoolean时显示该控件,并设置:
FDBCheckBox:=Self.DataSource;
FDBCheckBox:=Self.SelectedField.FieldName;
FDBCheckBox.ReadOnly:=False;
FDBCheckBox.Show;
FDBCheckBox.SetFocus;此时这个FDBCheckBox能接收到焦点,但是无法改变DataSet的字段值,请高手帮忙!

解决方案 »

  1.   

    对dbgrid你只要控制DBCheckBox,然后对数据操作在DBCheckBox处理       在DBGrid1DrawColumnCell事件中:
            if DBGrid1.SelectedIndex = 1 then
            begin
                if State.Contains(gdFocused) = true then
                begn
                    ComboBox1.Visible := False;
                    ComboBox1.Left := Rect.Left + DBGrid1.Left + 1;
                    ComboBox1.Top := Rect.Top + DBGrid1.Top + 1;
                    ComboBox1.Width = Rect.Right - Rect.Left;
                    ComboBox1.Height  := Rect.Bottom - Rect.Top;
                    ComboBox1.>Visible := True;
                end;
            end
            else
            begin
                ComboBox1.Visible := False;
            end
      

  2.   

    上面是把combobox1放在第一列至于数据的现实和操作你可以把他放在DBCheckBox的事件里啊