如何锁定数据网格中的一列或一行?在线等待!!!!!!!!!!!!!!!!!!!!(70分)

  • 主题发起人 主题发起人 haiping
  • 开始时间 开始时间
H

haiping

Unregistered / Unconfirmed
GUEST, unregistred user!
如何锁定数据网格中的一列或一行,最好给出代码。
 
是StringGrid 还是DbGrid,你的锁定是什么意思?是用户不能选择其它单元格吗?
 
在 Delphi 5中 锁 定 DBGRID左 边 列
我 在 使 用 Delphi 5进 行 数 据 库 编 程 的 时 候 ,
希 望 DBGRID构 件 在 显 示 数 据 的 时 候 能 象 FoxPro的BROWSE命 令 一 样 ,
锁 定 左 边 指 定 的 几 列 不 进 行 滚 动 , 请 问 应 用 什 么 方 法 来 实 现
? 我 们 知 道 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。





 
声明:
type TMyGrid = Class(TDBGrid) end;
事件:
if TMyGrid(DbGrid1).FixedCols=1 then
TMyGrid(DbGrid1).FixedCols :=4
else
TMyGrid(DbGrid1).FixedCols:=1;
我一直都在用。您试一下。
 
固定行在上部,固定列在左边。
 
谁会锁定行啊
 
后退
顶部