C# 禁止或至少检测Excel形状移动

C# 禁止或至少检测Excel形状移动,c#,.net,excel,office-interop,shape,C#,.net,Excel,Office Interop,Shape,我正在尝试构建一个可以与MicrosoftExcel(2007)交互的小应用程序。我的应用程序将启动并连接到Excel实例,并(以编程方式)将一个或多个形状放置在工作表上 我需要禁止用户移动和/或调整这些形状的大小。我可以保护工作表,但我需要允许用户编辑单元格内容并调整行和/或列的大小 有没有办法做到这一点 如果我不能禁止,至少我可以检测形状的移动/调整大小事件,并在拖动结束时以编程方式将它们放回原位吗?您实际上可以在不锁定单元格内容的情况下保护工作表,您也不需要修改单元格属性以指示它们已解锁

我正在尝试构建一个可以与MicrosoftExcel(2007)交互的小应用程序。我的应用程序将启动并连接到Excel实例,并(以编程方式)将一个或多个形状放置在工作表上

我需要禁止用户移动和/或调整这些形状的大小。我可以保护工作表,但我需要允许用户编辑单元格内容并调整行和/或列的大小

有没有办法做到这一点


如果我不能禁止,至少我可以检测形状的移动/调整大小事件,并在拖动结束时以编程方式将它们放回原位吗?

您实际上可以在不锁定单元格内容的情况下保护工作表,您也不需要修改单元格属性以指示它们已解锁

我以前没有使用过Interop,但下面是VBA中的代码。这允许修改内容,调整行和列,但不允许形状操纵。我相信您或其他人可以轻松地翻译此内容,因为它只是带有参数的工作表的保护方法

Worksheet.Protect DrawingObjects:=True, Contents:=False, AllowFormattingColumns:=True, _
    AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows :=True

好主意!明天早上的第一件事:D(晚上11:07在我家)