2017-08-06 15 views
0

設定ダイアログでアプリケーションを作成しようとしています。ダイアログの中にチェックボックスがあります。私はビジュアルスタジオの設定パネルに行き、設定に "AutoEnable"という名前を付けました。私は型をboolに設定し、スコープをユーザーに設定します。値をtrueに設定しました。一方の形で、私は、チェックボックスにCheckbox1_CheckedChanged機能を設定して、次のように機能を追加しました:私はそれをテストしたときどのようにチェックボックスの設定を関数で保存しますか?

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; 
     } 
    } 

、チェックボックスが私の前に設定した値としてチェックに設定しました。チェックボックスのチェックを外し、ダイアログを閉じてからもう一度開きます。結果は良かった...それは私のようにチェックされていなかった。しかし、私が見つけた1つの問題は、チェックボックスのチェックを外してダイアログを閉じたときで、MainEditorに戻ると、checkbox1のコード関数が機能していないことです。私は何を間違えたのですか?誰も助けることができますか?ありがとう。

答えて

0

OpenFormsを呼び出す代わりに、MainEditorを新しいインスタンスに初期化していると思います。試してみてください:

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

ありがとうございます。それは完璧に働いた。それに投票する – Roebebin

関連する問題