请问 如何实现带CheckBox的DBGrid

whyuu 2011-04-26 08:35:06
我想在TDBGrid的一列里用checkbox表示某一行被选中,想在TDBGrid中插入checkbox,但是总是有问题,插入的代码如下:

void __fastcall TFormSetJh::DBGridJhDrawColumnCell(TObject *Sender,^M
const TRect &Rect, int DataCol, TColumn *Column,^M
TGridDrawState State)^M
{^M
if (Column->FieldName == "Ñ¡¶¨")^M
{^M
TDBGrid *grid = dynamic_cast<TDBGrid *>(Sender);^M
unsigned int uState = DFCS_BUTTONCHECK;^M
if (Column->Field->AsBoolean) uState += DFCS_CHECKED;^M
TRect FrameRect = TRect(Rect.left+2,Rect.top+2,Rect.right-2,Rect.bottom-2);^M
//Ò²¿ÉÒÔÖ±½Ó=Rect£¬²»¹ý»­³öÀ´µÄµ¥Ñ¡¿òÓеãÆ«´ó^M
DrawFrameControl(grid->Canvas->Handle,&FrameRect,DFC_BUTTON,uState);^M
}^M

}^


这样实现后当第1次单击这个checkbox时显示了“对钩”表示选中了,再次单击这个checkbox的“对钩”消失表示没有选中,到这里运行都很好,但是,当第3次单击的时候,checkbox则消失了,代替它的是变成了有光标在闪烁提示输入文本的状态,想请教大家给如何实现这个功能。主要问题是解决第3次及以后单击时出现的输入文本状态。谢谢:)
...全文
110 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
我不懂电脑 2011-04-26
  • 打赏
  • 举报
回复
建议用devexpress
cmf41013 2011-04-26
  • 打赏
  • 举报
回复
基本上没看懂楼主的问题。
如果每一条记录都要用一个checkbox,记录多了就会很慢,推荐用第三方控件;如果只是当前选中的记录有checkbox,自己放一个checkbox控件那还可以。
周药师 2011-04-26
  • 打赏
  • 举报
回复
DBGridEh 控件自带了checkbox的,
设置列的Checkboxs属性为true 就可以了
cmf41013 2011-04-26
  • 打赏
  • 举报
回复
找第三方控件

13,824

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧