如何在不重新启动的情况下让我的应用程序保持最佳状态?

时间:2014-04-18 16:54:06

标签: c# winforms

这是我当前的代码,它从设置中获取bool变量(选中或取消选中复选框),然后为我的应用程序设置TopMost属性。

namespace POC_App
{
    public partial class mnView : Form
    {
        public mnView()
        {
            InitializeComponent();

            // Start program minimized if setting is set to true
            if (Properties.Settings.Default.setting_startmini)
            {
                this.Visible = false;
                if (this.WindowState == FormWindowState.Normal)
                {
                    this.WindowState = FormWindowState.Minimized;
                }
                this.ShowInTaskbar = false;
            }

            // Make the program on top
            if (Properties.Settings.Default.setting_alwaystop)
            {
                this.TopMost = true;
            }
        }
    }
}

问题是它会使我的应用程序保持在所有其他窗口的顶部,但每次我选中或取消选中该框时我都必须重新启动应用程序。 我该怎么做才能让我每次设置bool设置时都不必重新启动应用程序?

1 个答案:

答案 0 :(得分:0)

从我看到它在应用程序启动时作为全局设置的设置运行,而不是每当选中或取消选中复选框时。我认为你的逻辑对于你想做的事情来说有点偏僻。

选中复选框后,this.topmost = true,

而不是设置将在下次重新启动应用程序时起作用的properties.settings

类似的东西:

 checkBox1_CheckedChanged(object sender, EventArgs e)
  {
       if (checkbox1.checkstate = checked)
          this.TopMost = true;
          this.Focus();
   }

我没有使用vb键入theese所以检查拼写和语法等,但这听起来像你尝试做的逻辑。如果从非域表单调用,则可能必须使用this.Parent.Form等