sxyweiren 发表于 2021-6-7 10:18:14

关于MultiRow动态隐藏列的问题

现有一项目,需要动态的根据业务权限设定MultiRow的列进行隐藏。

首先设定固定模板,所有的列都是表示状态。
逻辑里面根据业务需求,进行列的隐藏。

逻辑是通过ColumnHeaders的Visible和HorizontalResize来控制。
※如果列幅设定成0,但是Visible是True的话,会有个细线表示。

现在的问题是,设置隐藏后,后面的单元格没有跟上来,仍然存在一定的空白。
比如我连续隐藏5列,在隐藏列的位置会有一块空白。
请问这个问题如何进行回避???


sxyweiren 发表于 2021-6-7 10:19:38



这个是不设定Visible的效果。

Richard.Ma 发表于 2021-6-7 17:45:57

你好,在设置某个cell的visible时,把后面的cell的location也跟着设置一下,手动往前面调一下

sxyweiren 发表于 2021-6-7 18:43:16

Richard.Ma 发表于 2021-6-7 17:45
你好,在设置某个cell的visible时,把后面的cell的location也跟着设置一下,手动往前面调一下

需要重新设定Template对象么??

还是直接通过GcmultiRow1.Template.ColumnHeaders.Cells来设定??

Richard.Ma 发表于 2021-6-8 16:10:09

先GcmultiRow1.Template.ColumnHeaders.Cells来设定,

GcmultiRow1.Template.ColumnHeaders.Cells = ...

GcmultiRow1.Template = GcmultiRow1.Template;

两步操作

sxyweiren 发表于 2021-6-8 16:13:05

Richard.Ma 发表于 2021-6-8 16:10
先GcmultiRow1.Template.ColumnHeaders.Cells来设定,

GcmultiRow1.Template.ColumnHeaders.Cells ...

这样的话就不能通过HorizontalResize来设定列宽了。
只能重新设定所有单元格的位置,然后重新设定Template了么??

Richard.Ma 发表于 2021-6-8 18:49:40

this.gcMultiRow1.Columns.Collapse();
隐藏第一列

sxyweiren 发表于 2021-6-8 19:24:15

Richard.Ma 发表于 2021-6-8 18:49
this.gcMultiRow1.Columns.Collapse();
隐藏第一列

完美解决问题。
非常感谢。

有一点,如果AllowUserToAddRows是False的话,需要先设成True,保证存在行才行。
要不然直接例外了。

Richard.Ma 发表于 2021-6-9 12:16:18

不客气
页: [1]
查看完整版本: 关于MultiRow动态隐藏列的问题