回 帖 发 新 帖 刷新版面

主题:有关DBGrid问题

哪位高手能告诉小弟:
如何在BCB中DBGrid控件中嵌入其他控件?请指教

回复列表 (共3个回复)

沙发

直接拖不行,但是可以用代码创建,例如:
TEdit* childEdit = new TEdit(DBGrid1);
childEdit->Parent = DBGrid1;
childEdit->Left = 0;
childEdit->Top = 0;

板凳

感谢回复!
但你这种方法只能够在DBGrid中静态指定位置

请问:
有没有更好的方法能够动态在某一个指定列中显示,

我用了一种方法,可就是不能很好地控制嵌入控件显与不显。嵌入的控件在指定列中先是都存在了,但不可见,在选中某个单元格时,该嵌入控件才可见。
在DBGrid的DBGrid1DrawColumnCell事件中加入代码:
    if(DataSource1->State == gdFocused)
    {
        if(Column->FieldName == "CDate")
        {
            DateTimePicker1->Left = Rect.Left + DBGrid1->Left;
            DateTimePicker1->Top = Rect.Top + DBGrid1->Top;  
            DateTimePicker1->Width = Rect.Right - Rect.Left;
            DateTimePicker1->Height = Rect.Bottom - Rect.Top;
        }
    }
再在DBGrid的DBGrid1CellClick事件中加入代码:
    if(Column->FieldName == "CDate")
    {
        DateTimePicker1->Visible = true;
    }

希望高手们给点指点.等待中......

3 楼

你这么写可以很好解决问题啊。

我来回复

您尚未登录,请登录后再回复。点此登录或注册