找回密码
 立即注册

QQ登录

只需一步,快速开始

afanti

注册会员

13

主题

37

帖子

180

积分

注册会员

积分
180
afanti
注册会员   /  发表于:2020-3-19 15:29  /   查看:3103  /  回复:4
100金币
如题,现在C1FlexGrid有3列,但是第三列设置的visible设置的是false
this.c1FlexGrid1.Cols[0].Width =this.c1FlexGrid1.Width / 5 * 3;
this.c1FlexGrid1.Cols[1].Width =this.c1FlexGrid1.Width - this.c1FlexGrid1.Cols[0].Width - 4;

this.c1FlexGrid1.AutoSizeRows();
当出现滚动条的时候,第二列显示不全。
没有滚动条的时候是可以看到第二列的右边框的。

如果我不设置第二列的宽度(或者随便设置一个比较小的数值)
this.c1FlexGrid1.Cols[0].Width =this.c1FlexGrid1.Width / 5 * 3;
//this.c1FlexGrid1.Cols[1].Width =this.c1FlexGrid1.Width - this.c1FlexGrid1.Cols[0].Width - 4;

this.c1FlexGrid1.AutoSizeRows();
有滚动条的时候,列能够显示全
但是,当输入较长内容的时候(输入的内容没有达到自动换行的长度),行高会发生变化,如下图。


现在的问题是,如何使C1FlexGrid当有滚动条的时候,列能够完全显示,并且输入较长内容的时候(内容不满足换行条件)行高不会变高。
附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册

最佳答案

查看完整内容

我理解你应该是要把这两列按照3:2的比例来设置列宽,这个可以直接在设计器中设置StarWidth熟悉,分别设置为3*和2*即可实现,测试了一下在有滚动条的情况下,也没有问题 **不需要设置Width属性

4 个回复

倒序浏览
最佳答案
最佳答案
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-3-19 15:29:36
来自 3#
我理解你应该是要把这两列按照3:2的比例来设置列宽,这个可以直接在设计器中设置StarWidth熟悉,分别设置为3*和2*即可实现,测试了一下在有滚动条的情况下,也没有问题

**不需要设置Width属性

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
afanti
注册会员   /  发表于:2020-3-19 15:30:41
2#
附上个sample

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
afanti
注册会员   /  发表于:2020-3-20 09:50:13
4#
Richard.Ma 发表于 2020-3-19 16:53
我理解你应该是要把这两列按照3:2的比例来设置列宽,这个可以直接在设计器中设置StarWidth熟悉,分别设置为 ...

好的,谢谢。这个C1FlexGrid比较特殊,程序中还有其他C1FlexGrid,不是固定比例的,是按照画面大小计算额,这些C1FlexGrid也有显示不全的问题,请问这种情况怎么处理?
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-3-20 11:48:00
5#
我看了你都是用Form1_Resize来做的,建议不用这个。使用anchor属性设置为四边来控制自动缩放,列宽度继续用我发你的比例设置的方式


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部