2017-08-06 48 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