将.net控件附加到没有VSTO的工作表(但Excel-DNA)

时间:2016-01-31 17:44:10

标签: c# excel office-interop excel-dna

我正在尝试做一些我不确定的事情。 我想使用.net第三方库来提供漂亮的winform图表控件,以替换Excel工作表中的一些(非常复杂和丑陋)VBA生成的图表。

我正在使用Excel-DNA(这是很棒的BTW),我设法用它做各种各样的事情,比如以同步和异步方式显示Winform表单(感谢https://github.com/Ron-Ldn/DotNetRefEdit

到目前为止,我设法在激活特定工作表时使用图表显示非模态表单,并通过设置它的parent和topMost属性,它有一些预期的行为。但放置它是一个真正的痛苦(不同的屏幕尺寸),我想知道是否有办法正确地做到这一点

所以这里有一个问题:我可以用某种方式将.Net表单或自定义控件附加到工作表上,甚至可以将它相对于特定单元格定位吗?它必须是非模态的,只有当我们在特定的工作表上时才会显示。

我知道使用VSTO你可以在工作表中添加一个控件,但我不想使用VSTO。我也知道我可以创建自己的ActiveX控件并将其注册,然后将其放置在Excel中,就像我使用另一个按钮控件一样,但根据我读到的内容,这看起来很危险

感谢您的所有想法或建议

1 个答案:

答案 0 :(得分:0)

考虑创建固定在Excel工作簿(工作表)右侧的自定义任务窗格(CTP)。

有关如何在ExcelDNA中执行此操作的详细信息,请参阅ExcelDNA GitHub Sample on CTP