找回密码
 立即注册

QQ登录

只需一步,快速开始

yin_tb

中级会员

53

主题

198

帖子

993

积分

中级会员

积分
993

微信认证勋章

yin_tb
中级会员   /  发表于:2021-11-25 12:12  /   查看:1928  /  回复:7
1金币

如题:C1Truedbgrid隐藏列可以拖出的问题。在设计时,已将列设为不显示,但运行时,鼠标放到标题,仍能拖出来,如下图:


我知道,Spread默认也是这样的,
但Spread有个属性,spread.ResizeZeroIndicator=ResizeZeroIndicator.Default;    属性可以让不能拖出来。

C1Truedbgrid怎么弄?没找到类似的属性。
附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册

最佳答案

查看完整内容

经过研究,找到解决办法了,也给未来需要人的分享一下,我前段时间用C1TrueDBGrid做项目较多,原来马老师也帮助很多,所以,对它了解的深一些: 首先强调一些东西: 1、要紧记,在事件中,很多时候,e.ColIndex e.Column TrueDBGrid.Col TrueDBGrid.Row并不是你想当然的列,这一点,你要不停的测试才能掌握。 2、基于Index这种引用,我总觉得不靠普,所以,一般我都是用列的caption,但你会发现,列的caption和name是一样的 ...

7 个回复

倒序浏览
最佳答案
最佳答案
yin_tb
中级会员   /  发表于:2021-11-25 12:12:55
来自 5#
经过研究,找到解决办法了,也给未来需要人的分享一下,我前段时间用C1TrueDBGrid做项目较多,原来马老师也帮助很多,所以,对它了解的深一些:
首先强调一些东西:
1、要紧记,在事件中,很多时候,e.ColIndex  e.Column TrueDBGrid.Col   TrueDBGrid.Row并不是你想当然的列,这一点,你要不停的测试才能掌握。
2、基于Index这种引用,我总觉得不靠普,所以,一般我都是用列的caption,但你会发现,列的caption和name是一样的,而且name不能编辑,但咱们中国人,caption一般都是中文,写代码时,很难受。所以,跟大家说一下,你是可以用DataField的,这一点,在文档中没有说,我是测出来的,如下,item_name是个DataField:TrueDBGrid.Splits.Item[0].DisplayColumns["item_name"].DataColumn.Value="娃哈哈";

回到主题,如何让隐藏的列,在运行时,拖动列宽时,不显示出来,思路如下:
1、我在做软件时,一般布局都是动态加载的,各人有不同习惯,所以,方法是,我在加载布局时给列的tag赋值,如果你是别的方法,那加载完布局时,你去循环一下列,根据列的visible,给列的Tag赋个值,如显示是1,不显示为0,
TrueDBGrid.Splits.Item[0].DisplayColumns["item_name"].DataColumn.Tag=1; //或 0
2、在TrueDBGrid的ColResize事件中,来屏弊拖动把隐藏的列显示了。
判断tag,
if (TrueDBGrid.Splits.Item[0].DisplayColumns[e.Column.ToString()].DataColumn.Tag==0)
{
e.Column.Visible=false;
}
//注:我也试过用e.Cancel=true; 不行,有的列宽不能调了。
// 上面用e.Column.ToString() ,而不用e.ColIndex,效果是不一样的,用e.ColIndex会有问题的。
有兴趣的伙伴可以去试下,是否有更好的办法。

评分

参与人数 1金币 +300 收起 理由
Richard.Ma + 300 感谢分享经验

查看全部评分

回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-11-25 12:19:27
2#
C1Truedbgrid目前确实没有办法禁止,
回复 使用道具 举报
yin_tb
中级会员   /  发表于:2021-11-25 12:23:40
3#
这又是个BUG,看来以后这个组件得少用了,你也说,很少更新了。
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-11-25 13:41:43
4#
这个不是bug,只是设计时就是这样的。
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-11-25 17:55:54
6#
赞一个,确实是一个好办法,感谢分享使用经验
回复 使用道具 举报
yin_tb
中级会员   /  发表于:2021-11-26 08:59:52
7#
谢谢马老师。在使用过程中,你帮助太多了,感谢。
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-11-26 09:22:45
8#
哈哈, 不客气,协助用户解决问题是我们应该做的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部