请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

NickYau

初级会员

12

主题

47

帖子

454

积分

初级会员

积分
454

微信认证勋章

NickYau
初级会员   /  发表于:2020-6-5 10:12  /   查看:6275  /  回复:12
1金币
你好,请问SpreadSheet表格控件是否可以锁定某列不可编辑(注:只锁定指定的列,其它列可以编辑)

最佳答案

查看完整内容

目前WPF在锁定后确实没有办法调整行列宽高 可以用另外一种办法来禁止编辑,通过在EditStarting事件中添加如下代码,即可禁用第一列的编辑

12 个回复

倒序浏览
最佳答案
最佳答案
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-6-5 10:12:12
来自 13#
目前WPF在锁定后确实没有办法调整行列宽高

可以用另外一种办法来禁止编辑,通过在EditStarting事件中添加如下代码,即可禁用第一列的编辑

  1. void Spread_EditStarting(object sender, GrapeCity.Windows.SpreadSheet.UI.EditCellStartingEventArgs e)
  2. {
  3.     if (e.Column == 0)
  4.         e.Cancel = true;
  5. }
复制代码
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-6-5 11:35:24
2#
通过设置sheet 的Protect 属性,可以阻止编辑已经锁定的单元格,然后将该行锁定即可
  1.             fpSpread2.ActiveSheet.Protect = true;

  2.             fpSpread2.ActiveSheet.LockBackColor = Color.LightCyan;

  3.             fpSpread2.ActiveSheet.LockForeColor = Color.Green;
  4.             fpSpread2.ActiveSheet.Columns[4].Locked = true;
复制代码
回复 使用道具 举报
NickYau
初级会员   /  发表于:2020-6-5 11:38:19
3#
Richard.Ma 发表于 2020-6-5 11:35
通过设置sheet 的Protect 属性,可以阻止编辑已经锁定的单元格,然后将该行锁定即可

代码已经试过了,这个是整个页不可编辑,我们想要的是指定列不可编辑,其他列还可编辑
回复 使用道具 举报
NickYau
初级会员   /  发表于:2020-6-5 11:40:25
4#
Richard.Ma 发表于 2020-6-5 11:35
通过设置sheet 的Protect 属性,可以阻止编辑已经锁定的单元格,然后将该行锁定即可

而且ActiveSheet是没有LockBackColor属性和方法
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-6-5 15:17:35
5#
本帖最后由 Richard.Ma 于 2020-6-5 15:29 编辑

不好意思,需要先将sheet整体默认的locked属性先设置为false,具体我验证一下如何设置然后回复你
或者将其他列的Locked设为false也行,但是这样比较麻烦,而且新增列可能也会有问题


回复 使用道具 举报
NickYau
初级会员   /  发表于:2020-6-5 17:48:35
6#
Richard.Ma 发表于 2020-6-5 15:17
不好意思,需要先将sheet整体默认的locked属性先设置为false,具体我验证一下如何设置然后回复你
或者将其 ...

好的,等待您的回复
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-6-8 09:28:05
7#
设置DefaultStyle.Locked = false后虽然可以让整个文档解除锁定,但是后面设置单列所动会失效,

因此目前建议还是对所有列单独设置,按照需要设置是否锁定
  1.             spread1.ActiveSheet.Columns[4].Locked = true;
  2.             spread1.ActiveSheet.Columns[1].Locked = false;
复制代码
回复 使用道具 举报
NickYau
初级会员   /  发表于:2020-6-9 09:26:44
8#
Richard.Ma 发表于 2020-6-8 09:28
设置DefaultStyle.Locked = false后虽然可以让整个文档解除锁定,但是后面设置单列所动会失效,

因此目 ...

好的,我先尝试一下
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-6-9 09:39:02
9#
好的
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部