【问题标题】:How to hide/show the tool window but not close it如何隐藏/显示工具窗口但不关闭它
【发布时间】: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


【解决方案1】:

我想你有一个工具栏列表,其中包含在你的应用程序中创建的工具栏。 您的工具栏中必须有一个隐藏/显示它的方法。 (如果您没有真正关闭工具栏,请不要调用 close 方法)。 当您“关闭”工具栏调用隐藏方法时,重新打开调用显示。 (关闭App时,调用close)。

希望对您有所帮助。

【讨论】:

  • 如果通过单击“x”按钮“关闭”多实例工具窗口,您知道如何隐藏它吗?
  • @Carlos 关于那个特定问题,您的窗格应该有一个可以实现的 Closing 事件,在其中取消关闭并调用 Hide()。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-30
  • 2010-11-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多