如何让我的应用程序在不重新启动的情况下保持领先地位

本文关键字:情况下 领先地位 重新启动 我的 应用程序 | 更新日期: 2023-09-27 17:58:53

这是我当前的代码,它从设置中获取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设置时都重新启动应用程序了?

如何让我的应用程序在不重新启动的情况下保持领先地位

据我所见,它在应用程序启动时作为全局设置中的一个设置运行,而不是在选中或取消选中复选框时运行。我认为你的逻辑有点偏离了你试图做的事情。

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

与设置属性相反。设置将在下次重新启动应用程序时起作用

类似于:

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

我没有用vb输入,所以请检查拼写和语法等,但这听起来像是你想要做的逻辑。如果从非主窗体调用,你可能必须使用这个。Parent.Form等