【发布时间】:2014-04-30 09:14:08
【问题描述】:
我有一个 VS2010 隔离 Shell 应用程序,我有一个如下的工具窗口
public class MyWindow : ToolWindowPane
而且这个工具窗口支持多实例
[ProvideToolWindow(typeof (MyWindow ),
MultiInstances = true,
Style = VsDockStyle.MDI,
Transient = true)]
public sealed class MyVsxPackage : Package
然后在我的应用程序中,我可以打开多个工具窗口(每个工具窗口都有自己的窗口 ID),但是当我关闭其中一个时,我只想隐藏它,下次我重新打开窗口时设置窗口在关闭之前应该保持不变,如何处理?
换句话说,我的问题是:有什么方法可以防止通过单击“x”按钮关闭多实例工具窗口(只是隐藏它)?
提前致谢!
【问题讨论】:
-
对于问题的第二部分,只需使用配置 .ini 文件即可。
-
配置文件有详细信息吗? @Kilazur
-
没什么花哨的,你只需将你打开的工具窗口的ID写在一个文本文件中,这样你就可以在启动程序时读取它。这就是我从“下次重新打开窗口时窗口上的设置应该在关闭之前保持不变”
-
@Kilazur 但似乎工具窗口会在通过单击“x”按钮关闭时被释放,并且工具窗口中的控件也会被释放。所以控件之前的设置是无法恢复的,除非我把控件从工具窗口中分离出来
-
对我来说,这似乎是一个设计缺陷,但我可能错了。也许您应该坚持拥有一个父 ToolWindow 类,并为您拥有的每个工具窗口派生它。老实说,我从来没有使用过多实例,所以我有限的知识到此为止。
标签: c# visual-studio-2010 vsx