如何在Delphi6中 锁 定 DBGRID左 边 列 ??(50分)

5

501bhw

Unregistered / Unconfirmed
GUEST, unregistred user!
如何象FoxPro的BROWSE命令一样.锁定左边指定的几列不进行滚动,请问用什么方法来实现
请详细说明,谢谢了!
 
在 form.show事件中把dbgrid转成TStringGrid .其原因是其都是从TCustomGrid类承继。
以前以有贴子以讲过n次
TStringGrid(dbgrid1).FixedCols :=2;
 
可是标题无法显示,该怎么办?
 
microding
出现被锁定列的标题文字无法显示.怎么办??
 
你的列名是在哪写的
如果在dbgrid 应该没问题
你可以在dbgrid 的fix属性里确定固定几列
 
zhangyufly
我用dbgrid 来显示 Query的查询结果,列名既Query1.fields
 
标题还是看不见?
 
TStringGrid(dbgrid1).FixedRows :=1;
 
Delphi的 TStringGrid有 一 个 属 性 FixedCols来 指 定 不 滚 动 的列 。 虽 然 TDBGrid不 能 直 接 使 用 这 一 属 性 , 但 通 过 强 制 类 型 转 换 也 可 以 实 先 这 一 功 能 , 因为 这 两 个 类 都 来 自 TCustomGrid类 。 下 面 我 们 以 Delphi 3.0的 Demos/Db/CtrlGrid为 例 来说 明 具 体 的 用 法 。 在 这 个 例 子 的 TFmCtrlGrid.FormShow过 程 中 加 入 如 下 一 行 :TStringGrid(DbGrid1).FixedCols := 2;
运 行 该 程 序 ,在 左 右 移 动 各 列 时, Symbol列 不 会 移 动 。 除 了 这 种 方 法 , 也 可 以 采 用 下 面 的 方 法 : 首 先 在 Form声 明 部 分 加上 type TMyGrid = Class(TDBGrid) end;然 后 在 TFmCtrlGrid.FormShow过程中加入: TMyGrid(DbGrid1).FixedCols := 2;
两 者 从 形 式 上 略 有 不 同 , 但 实 质 都 是 一 样 的 。 我 们 这 里 设 置FixedCols为 2, 这 是 因 为 在 DBGrid构 件 最 左 侧 有 个 指 示 列 , 如 果 你 将 DBGrid的 Options属性 的 dgIndicator设 为False, 则 应 设 置 FixedCols为 1。

此法在以下操作后失效:
1、鼠标将其中一栏的宽度拉大后。
2、出现被锁定列的标题文字无法显示。
3、在移动标题栏或改变dbgrid的行或列时
 
谢谢几位富翁的解答,但是,移动横向流动条时锁定的Dbgrid标题文字还是无法显示,
难道无法解决?
 
多人接受答案了。
 
顶部