gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 21:48:43 25 4
gpt4 key购买 nike

首先,感谢您抽出宝贵的时间和协助审查此内容!...

我正在尝试使用 VS 2010 将 Excel VBA 工作簿升级为 VB.NET 中的 VSTO Excel 插件。在原始(即 VBA)版本中,我有一个 float 在顶部的无模式用户窗体(称为 frmMain)当用户仍在 Excel 应用程序中时始终可见,但如果用户移动到 Excel 之外的另一个窗口则不可见。

例如,在 Excel 中,用户可以单击任何工作表选项卡、选择任何单元格等,用户窗体仍然可见。这正是我想要的。

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

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

我可以手动 Alt-Tab 将表单重新显示在 View 中,但我需要它始终保持在 View 中 - 只要用户没有离开 Excel 应用程序,它就 float 在 Excel 工作表的顶部。

我尝试了各种方法,包括将表单设置为 TopMost , 但是,这会导致表单为 TopMost无处不在 - 包括 Excel 之外。更糟糕的是,如果用户执行任何通常会导致 Excel 启动对话框的操作(例如,关闭打开的工作簿、发出警报“您要保存更改...”),警报对话框本身就会被隐藏并且在 frmMain 后面无法访问形式(因为 frmMainTopMost )。

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

谢谢!!!

最佳答案

你应该看看Custom Task Panes它可以停靠或 float 在 Excel 应用程序中。您还可以查看 COM 接口(interface)以获得较低级别的连接 (see related SO Post) - 尽管 任务 Pane 确实是这种行为的目的。

关于vb.net - Excel AddIn - 在 Excel 中保持 Windows 窗体始终可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9506389/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com