如果一个dbgrid有很多的列,我在拖动横向的滚动条时,如何实现第一列锁定的效果?很急,大侠指点!
解决方案 »
- delphi 关于dom元素获取。 (使用mshtml IHTMLDocument)进入看详情!
- Delphi 连接mysql时单引号问题
- 求救:小弟我是delphi初学者,现遇到小问题,望高手赐教!
- 请教,如何让程序忽略所有的错误,不弹出报错的提示???谢谢!!
- 有关把字体存入数据库的问题,急啊!!!
- 请看运行时发生“致命性”错误............寻求解决方案
- 为什么我的应用程序在不启动DELPHI的情况下运行要出现RUNTIME ERROR?
- 关于SQL SERVER2000的简单初级问题(保存连接时的用户名与密码),向有经验的开发者请教。
- ■怎样得到系统键盘输入的内容?■
- 菜鸟问题,怎么做累加?
- 郁闷...放分之二
- Beep怎么没有声音?
就想是excel中能够锁定列一样。
在
type
form1=Class(Tform)...
之前加
type
TDrawGrid=Class(TCustomGrid)
end;
然后再dbgrid的oncolexit中加:
TDrawGrid(dbgrid1).col:=1;
TStringGrid(DbGrid1).FixedCols := 2;
运行该程序,就可以得到图1所示的效果,在左右移动各列时Symbol列不会移动。除了这种方法,也可以采用下面的方法:首先在Form声明部分加上
type TMyGrid = Class(TDBGrid) end;
然后在TFmCtrlGrid.FormShow过程中加入:
TMyGrid(DbGrid1).FixedCols := 2;
两者从形式上略有不同,但实质都是一样的。我们这里设置FixedCols为2,这是因为在DBGrid构件最左侧有个指示列,如果你将DBGrid的Options属性的dgIndicator设为False,则应设置FixedCols为1。