【问题标题】:Toggle visibility of ToolStrip切换 ToolStrip 的可见性
【发布时间】:2018-03-02 18:42:26
【问题描述】:

我有一个工具条和一个状态条,我切换了它们的 Visible 属性。 “关闭”时,表单最小化到系统托盘。

    private void MainForm_FormClosing(object sender, FormClosingEventArgs e)
    {
        e.Cancel = true;
        this.WindowState = FormWindowState.Minimized;
        this.Hide();
    }

我从 NotifyIcon 的 ContextMenu 关闭应用程序,我想保存工具条 (statusstrip) 的可见性。 问题是当表单“关闭”时它们总是错误的。 当它们真的不可见或表单被隐藏时可以区分

【问题讨论】:

  • 最好的办法是创建一个字段,如ToolstripsVisibleWhenShwon,并在用户指示应显示/隐藏条带时设置并清除该变量。然后它将清楚地代表您正在跟踪的状态。
  • Visible 属性有点不寻常,当你读回它时,你会得到控件的实际状态。隐藏窗口时总是 false。你只需要保留一个额外的变量。或者在分配 Visible 属性时设置应用设置。

标签: c# .net winforms


【解决方案1】:

我不太明白问题出在哪里以及您如何无法区分表单状态。 为什么不比较 FormWindowState 枚举并设置组件设置?

1 添加应用设置:

名称:可见

类型:布尔

范围:用户

值:假

2 在代码集组件属性中的任何位置。

if (this.WindowState == FormWindowState.Minimized)
      {
         toolStrip.Visible = true;
      }
         else
      {
         toolStrip.Visible = false;
      }

3 最后保存设置

using myApplication.Properties;
private void MainForm_FormClosing(object sender, FormClosingEventArgs e)
     {
         Settings.Default.Visible = toolStrip.Visible ;
         Settings.Default.Save(); 
     }

【讨论】:

  • 我想保存toolstrip.Visible状态。当表单关闭时(this.Hide())工具条总是返回 false
  • 然后在 this.hide() 之前保存。 hide() 方法将控件的可见属性设置为 false,这就是它的工作原理。在这种情况下,您隐藏表单,而不是工具条。如何创建、修改和保存工具条设置如上代码所示。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-08-05
  • 2014-12-20
  • 1970-01-01
  • 2015-12-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多