微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

vb.net – Excel AddIn – 在Excel中保持窗体始终可见

首先,感谢您在审核时的时间和帮助!…

我正在尝试使用VS 2010将Excel VBA工作簿升级到VB.NET中的VSTO Excel加载项.在原始(即 – VBA)版本中,我有一个无模式的UserForm(称为frmMain)浮动在顶部并且可见用户仍然在Excel应用程序中的所有时间,但如果用户移动到Excel之外的另一个窗口,则不可见.

例如,在Excel中,用户可以单击任何工作表选项卡,选择任何单元格等,UserForm仍然可见.这正是我喜欢它的方式.

问题是,在新的VSTO加载项中,我无法让Windows窗体模仿这种相同的行为.

我使用frmMain.Show()将表单显示为无模式表单,但是当用户单击Excel工作表(即激活工作表)时,表单将隐藏在工作表后面.

我可以手动Alt-Tab将表单重新放入视图中,但我需要它始终保持在视图中 – 只要用户没有离开Excel应用程序,它就会浮动在Excel工作表的顶部.

我尝试了各种各样的东西,包括将表单设置为TopMost,然而,这导致表单在任何地方都是TopMost – 包括Excel之外.更糟糕的是,如果用户做任何通常会导致Excel启动对话框的事情(例如 – 关闭打开的工作簿,提出警告“你想保存更改……”)警告对话框本身就被隐藏了并且在frmMain形式后面不可访问(因为frmMain是TopMost).

如何让我的表单以所需的方式运行(即 – 与VBA中的表现相同)?

谢谢!!!

解决方法

您应该查看可以在Excel应用程序中停靠或浮动的 Custom Task Panes.您还可以查看COM接口以获得较低级别的连接( see related SO Post) – 尽管任务窗格确实是这种行为的目的.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐