加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-17 07:27:28 所属栏目:百科 来源:网络整理
导读:首先,感谢您在审核时的时间和帮助
首先,感谢您在审核时的时间和帮助!…

我正在尝试使用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) – 尽管任务窗格确实是这种行为的目的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读