如何将Checkbox检查的方法移动到其他表单?

时间:2013-08-06 14:48:00

标签: winforms checkbox controls

我有一个使用Windows Forms和C#编写的迷你安装程序,但有问题。

我有四个CheckBox控件,我想获取检查信息并在另一个表单上使用它 所以它提供了选中的复选框。另一个表单仅根据选中的复选框显示已检查的模块列表。

如何在Form2中仅显示已检查的模块?

2 个答案:

答案 0 :(得分:0)

您需要将该信息传递到第二个表单。

因此,在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();

答案 1 :(得分:0)

直到我知道更多我会给你一些想法:

Form2可以在他的构造函数中获取Form1并让Form1给出一个类似的方法:

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