【问题标题】:Panel in StatusStrip?状态条中的面板?
【发布时间】:2012-10-17 14:54:20
【问题描述】:

是否可以在StatusStrip 中有一个面板? MSDN 是这么说的:

默认的 StatusStrip 没有面板。要将面板添加到 StatusStrip,请使用 ToolStripItemCollection.AddRange 方法 [...]

...但我找不到方法。

我尝试将PanelToolStripPanel 添加到StatusStrip,但它只接受ToolStripItems。另一方面,我尝试将ToolStripItem 添加到PanelToolStripPanel,但两者都只接受Controls:

ToolStripPanel toolStripPanel = new ToolStripPanel();
toolStripPanel.Controls.Add(toolStripStatusLabel);   // Wrong
statusStrip.Items.AddRange(toolStripPanel);          // Wrong again

【问题讨论】:

  • 是的,行不通,口味不对。目前尚不清楚您要完成什么,您正在寻找 ToolStripControlHost 类的可能性很大。
  • @HansPassant 我正在尝试将几个 ToolStripItem 分组到一个面板中,以便隐藏/显示该面板(出于某些充分的原因,我无法隐藏/显示每个项目)。我不认为 ToolStripControlHost 提供包含 ToolStripItems 的功能,是吗?
  • 否,但您可以在其中放置 ToolStrip 或 ToolStripPanel。这反过来又可以托管 ToolStripItems。

标签: c# winforms panel statusstrip


【解决方案1】:

有趣的是,在微软的术语中

ToolStripStatusLabel - 表示 StatusStrip 控件中的面板。

所以他们的面板实际上是一个标签。除非这是他们文档中的错误,否则您尝试做的事情是不可能的,因为没有可以在 StatusStrip 中托管的 Panel 类。

【讨论】:

    【解决方案2】:

    您可以使用 ToolStripStatusLabel。为了获得面板的外观和感觉,只需设置 ToolStripStatusLabel 的以下属性: BorderSides = 全部, BorderStyle = SunkenOuter

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-21
      相关资源
      最近更新 更多