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