delphi中如何用dbgride控件实现数据输入,并且每个单元格的输入都能像下拉列表一样!

如果不用这个控件只要能实现这个功能就行。我想的是下拉列表中的值是从数据库中提取的,并且不只一列。还有增加行这类的东西。那个东西还要能显示之前输入的数据!是做医院的管理信息... 如果不用这个控件只要能实现这个功能就行。我想的是下拉列表中的值是从数据库中提取的,并且不只一列。还有增加行这类的东西。那个东西还要能显示之前输入的数据!是做医院的管理信息系统,我还是个新手请讲的详细点。请高手指点,谢了! 展开
 我来答
量无海大
2011-03-21 · 超过56用户采纳过TA的回答
知道小有建树答主
回答量:90
采纳率:0%
帮助的人:145万
展开全部
在窗口任意位置放一个TComboBox控件,进行相关设置,并设置Visible:=false; 宽度和Cell一样宽。
在dbgride的OnDrawDataCell事件中回入代码:
ComboBox1.Left := Rect.Left + dbgride1.Left;
ComboBox1.Top := Rect.Top + dbgride1.top;
ComboBox1.Visible := True;
在TComboBox 的 OnExit事件中加入代码
ComboBox1.visible:=false;
// 修改数据库相应值

补充:
1、不能在双击dbgride,进行显示列设置,否则不会触发OnDrawDataCell事件;
2、如果数据库字段是英文,而你想在表格中显示中文,要设置table或Query的SQL语句(as)
3、充分利用OnDrawDataCell事件中Column变量
if Column.FieldName='aaa' then dosomething;
追问
为什么我用的时候第二个dbgrid总是在表格的下方左右跳个不停。就是每一列下面都出现一次。希望继续解答,万分感谢。或者你有这种窗体的源代码发我,我自己研究也行!369626855@qq.com
追答
显示帮你做了个DEMO(发到你QQ信箱),数据输入实现写数据库的代码要你自己加了!
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式