我有一个使用Windows Forms和C#编写的迷你安装程序,但有问题。
我有四个CheckBox控件,我想获取检查信息并在另一个表单上使用它 所以它提供了选中的复选框。另一个表单仅根据选中的复选框显示已检查的模块列表。
如何在Form2中仅显示已检查的模块?
答案 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;
}
}