You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现CxGrid列拖拽隐藏功能及弹出列隐藏自定义对话框

CxGrid 列隐藏功能实现方案

我们需要实现两类CxGrid列隐藏需求:

  • 通过拖拽操作隐藏CxGrid的列
  • 弹出自定义对话框实现列隐藏

实现效果参考下图:
CxGrid列隐藏效果示意图


1. 拖拽隐藏列实现

CxGrid原生支持拖拽隐藏列功能,仅需开启对应配置项即可:

  • 找到对应Grid绑定的TableView组件,定位到OptionsCustomize属性组
  • 将ColumnMoving属性设为True,开启列拖拽权限
  • 将ColumnHiding属性设为True,开启拖拽隐藏功能

配置完成后,运行时用户拖动列头到Grid区域外,即可触发对应列隐藏;需要恢复时调出列选择列表拖回列头区域即可。


2. 自定义对话框隐藏列实现

如果需要更灵活的批量列显示/隐藏控制,可以自己实现自定义对话框:

  1. 新建一个对话框窗体,添加列表勾选控件(如TCheckListBox),初始化时遍历Grid所有列,将列标题填充到勾选列表中,同步当前列的可见状态到勾选状态
  2. 在Grid的列头右键菜单或者工具栏中添加「列设置」入口,点击后弹出上述自定义对话框
  3. 用户勾选调整完成后点击确认,遍历勾选列表的状态,同步设置对应列的Visible属性,代码示例如下:
var
  i: Integer;
begin
  // 同步勾选状态到列可见性
  for i := 0 to cxGrid1TableView1.ColumnCount - 1 do
  begin
    cxGrid1TableView1.Columns[i].Visible := CheckListBox1.Checked[i];
  end;
end;
  1. 若需要持久化用户的列显示偏好,可以将各列的可见状态存储到本地配置文件/注册表,下次打开Grid时自动读取恢复即可。

内容的提问来源于stack exchange,提问作者Ahmed Bellil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 15:45:01