主题:有关DBGrid问题
panda83
[专家分:0] 发布于 2005-09-16 09:54:00
哪位高手能告诉小弟:
如何在BCB中DBGrid控件中嵌入其他控件?请指教
回复列表 (共3个回复)
沙发
christ115 [专家分:1580] 发布于 2005-09-16 11:20:00
直接拖不行,但是可以用代码创建,例如:
TEdit* childEdit = new TEdit(DBGrid1);
childEdit->Parent = DBGrid1;
childEdit->Left = 0;
childEdit->Top = 0;
板凳
panda83 [专家分:0] 发布于 2005-09-16 16:59:00
感谢回复!
但你这种方法只能够在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 楼
christ115 [专家分:1580] 发布于 2005-09-17 17:17:00
你这么写可以很好解决问题啊。
我来回复