请问用VSTO做Excel的开发,想把行和列锁定使其不允许删除还要保留toolbar上面的插入函数按钮,应该用什么方法?

ecaol 2008-10-10 09:43:28
用VSTO开发Excel的项目,
客户要求要把行和列全部锁定,无法删除,
这个功能用worksheet.protect(...)函数实现,
但是这样锁定的话toolbar就被一起锁定了,
toolbar中的函数插入按钮也变成灰色了,
worksheet.protect()函数中,第三个参数contents如果设置成false的话,
虽然toolbar上面的插入函数按钮可用了,但是行和列就都能修改了,
无法符合要求了,哪位大侠有好的办法,帮我一把。

...全文
265 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
crane199 2008-11-17
  • 打赏
  • 举报
回复
学习中,帮顶!!
可不可以只针对指定的几行进行锁定?
rangeon 2008-10-13
  • 打赏
  • 举报
回复
帮顶,顺便学习
hei_an 2008-10-13
  • 打赏
  • 举报
回复
用SelectionChange事件,点选指定单元格解除保护,点选不允许的其它区域恢复保护呢?这个没时间试过,LZ不妨试一下
紫气东来_999 2008-10-12
  • 打赏
  • 举报
回复
真有想法呀。...
hei_an 2008-10-12
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 ecaol 的回复:]
不好意思,可能是我说的不够清楚。

protect方法我试过了,第三个参数是一个全局锁定既:行列不允许修改,ToolBar也被锁定,

可是我想要实现: 行列不允许修改,ToolBar锁定解除,有没有方法?
[/Quote]
行列不允许修改,对应的TollBar当然要被锁定,可以设置允许单元格,要不就矛盾了..
ecaol 2008-10-12
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 hei_an 的回复:]
引用 10 楼 ecaol 的回复:
不好意思,可能是我说的不够清楚。

protect方法我试过了,第三个参数是一个全局锁定既:行列不允许修改,ToolBar也被锁定,

可是我想要实现: 行列不允许修改,ToolBar锁定解除,有没有方法?

行列不允许修改,对应的TollBar当然要被锁定,可以设置允许单元格,要不就矛盾了..
[/Quote]

不矛盾,
但是客户就是希望行列不允许修改,对应的TollBar不要被锁定,
虽然边框表格基本都是锁定住的,但是其中有一块区域的锁定状态去掉了钩,是可以编辑的,
这个区域是要使用者输入信息的地方,

所以用户希望鼠标双击可输入的cell的时候,toolbar上面插入函数按钮时可用的,
难道就没有办法实现了吗?

ecaol 2008-10-11
  • 打赏
  • 举报
回复
不好意思,可能是我说的不够清楚。

protect方法我试过了,第三个参数是一个全局锁定既:行列不允许修改,ToolBar也被锁定,

可是我想要实现: 行列不允许修改,ToolBar锁定解除,有没有方法?
hei_an 2008-10-11
  • 打赏
  • 举报
回复
Excel.AllowEditRange rng = this.Protection.AllowEditRanges.Add("可编缉", this.Range["A:A", missing], "");
Globals.Sheet1.Protect("", true, true, false ,false ,false , false , false ,false ,false ,false , false , false , false, false, false);

在A1单元格可以用下拉菜单里的插入函数,也可以自己重新写工具栏函数插入!
mengxj85 2008-10-11
  • 打赏
  • 举报
回复
帮不上忙,关注,顶
cnming 2008-10-11
  • 打赏
  • 举报
回复
如果行列不允许修改,ToolBar当然就锁定了,除非你点击到允许修改的行列,因此我判断worksheet.protect(...)函数就已经实现了你的需求
hei_an 2008-10-11
  • 打赏
  • 举报
回复
Globals.Sheet1.Protect("", true, true, false ,false ,false , true, true ,true ,true ,false , true, true, false, false, false);
这样子好像正确一点...
hei_an 2008-10-11
  • 打赏
  • 举报
回复
Globals.Sheet1.Protect("", true, true, true, true, true, true, false, false, false, true, true, true, false, false, false);
保护后删除插入操作时有提示!16个参数调一调好像能实现
优途科技 2008-10-11
  • 打赏
  • 举报
回复
顶一下、
优途科技 2008-10-11
  • 打赏
  • 举报
回复
顶一下、
hei_an 2008-10-11
  • 打赏
  • 举报
回复
刚刚就说了你很矛盾!!
dengchenlu 2008-10-11
  • 打赏
  • 举报
回复
up

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧