2017-08-06 15 views
0

我想创建一个设置对话框的应用程序。在对话框中,会出现一个复选框。我进入了visual studio中的设置面板,并将设置命名为“AutoEnable”。我将该类型设置为布尔型,并将范围设置为用户。我也将这个值设置为true。与此同时,在形式,我给自己定一个Checkbox1_CheckedChanged功能的复选框,并添加了功能如下:如何保存复选框设置与功能在C#

private void checkBox1_CheckedChanged(object sender, EventArgs e) 
    { 
     if(checkBox1.Checked == true) 
     { 
      MainEditor m = new MainEditor(); 
      m.menustrip1.Visible = true; 
     } 
     if (checkBox1.Checked == false) 
     { 
      MainEditor m = new MainEditor(); 
      m.menustrip1.Visible = false; 
     } 
    } 

当我测试了它的复选框被设置为检查正如我以前所设置的值。我取消选中复选框并关闭对话框,然后再打开它。结果很好......像我一样没有选择。但是我发现的一个问题是,当我取消选中复选框并关闭对话框并返回MainEditor时,checkbox1中的代码函数不起作用。我做错了什么?谁能帮忙?谢谢。

回答

0

我想你是MainEditor初始化为一个新的实例,而不是调用OpenForms。试试这个:

var m = Application.OpenForms.OfType<MainEditor>().SingleOrDefault(); 
if (m != null) 
{ 
    m.menustrip1.Visible = true; 
} 
+0

非常感谢。它工作完美。给你一个投票。 – Roebebin