0

Windows フォームと C# を使用して作成されたミニ セットアップ プログラムがあり、問題があります。

4 つの CheckBox コントロールがあり、チェックされた情報を取得して別のフォームで使用して、どのチェックボックスがチェックされているかを提供したいと考えています。もう 1 つのフォームには、チェック ボックスがオンになっているモジュールのリストのみが表示されます。

Form2 でチェックされたモジュールのみを表示するにはどうすればよいですか?

4

2 に答える 2

0

詳細がわかるまで、いくつかのアイデアを提供します。

Form2彼のコンストラクターで getForm1および have Form1give メソッドを次のように使用できます。

  public bool IsCheckboxChecked(int checkIndex)
  {
     if (checkIndex == 1)
     {
        return checkBox1.Checked;
     }
     else if (checkIndex == 2)
     {
        return checkBox2.Checked;
     }
     else if (checkIndex == 3)
     {
        return checkBox3.Checked;
     }
     else if (checkIndex == 4)
     {
        return checkBox4.Checked;
     }
     else
     {
        return false;
     }
  } 
于 2013-08-06T14:56:12.177 に答える
0

その情報を 2 番目のフォームに渡す必要があります。

したがって、値From2のリストなどを取得するメソッドを追加して、boolこのメソッドをパブリックにすることができます。

 // put this method in Form2
 public void SetModules(IList<bool> modulesEnabled)
 {
     // here you can test whether a certain module is enabled
     //    by checking modulesEnabled[0], modulesEnabled[1], etc.
 }

Form1 から、From2 を表示する前に、チェックボックスの状態を取得し、modulesEnabled 配列を作成します。次に、Form2 で SetModules を呼び出します。

 Form2 secondForm = new Form2();

 IList<bool> modulesList = new List<bool>();
 modulesList.Add(checkBox1.Checked);
 modulesList.Add(checkBox2.Checked);
 modulesList.Add(checkBox3.Checked);
 modulesList.Add(checkBox4.Checked);

 secondForm.SetModules(modulesList);      // make sure to call this BEFORE showing Form2

 secondForm.Show();
于 2013-08-06T14:54:13.710 に答える