【发布时间】:2016-01-31 17:44:10
【问题描述】:
我正在尝试做一些我不确定是否可行的事情。 我想使用一个 .net 3rd 方库,它提供了很好的 winform 图表控件,以替换 Excel 工作表中的一些(非常复杂和丑陋的)VBA 生成的图表。
我正在使用 Excel-DNA(顺便说一句,这很棒),我设法用它做各种事情,比如以同步和异步方式显示 Winform 表单(感谢 https://github.com/Ron-Ldn/DotNetRefEdit)
到目前为止,当我激活特定工作表时,我设法使带有图表的非模态表单出现,并且通过设置它的 parent 和 topMost 属性,它有点具有预期的行为。但是放置它是一个真正的痛苦(不同的屏幕尺寸),我想知道是否有办法正确地做到这一点
所以问题来了:我能否以某种方式将 .Net 表单或自定义控件附加到工作表,甚至可以将其相对于特定单元格定位?它必须是非模态的,并且仅当我们在特定工作表上时才会显示。
我知道使用 VSTO 可以将控件添加到工作表,但我不想使用 VSTO。我也知道我可以创建自己的 ActiveX 控件并注册它,然后将它放在 Excel 中,就像我使用另一个按钮控件一样,但根据我所读到的内容,这似乎很危险
感谢您的所有想法或建议
【问题讨论】:
-
我必须添加其他内容:我想要一种正确的方式,因为在表单中显示图表似乎不正确,但如果解决方案必须使用 Forms,我愿意接受它。另外,我不能使用自定义任务窗格,重新计算也不成问题。
-
最终用户是谁?只有你?远程同事?客户?如果用户群很小,您可以尝试制作一个订阅 Excel 事件的加载项(如 Application.SheetActivated),然后显示表单/控件。
标签: c# excel office-interop excel-dna