C#中获取CheckBox选中的值(多选)

我是想把所选中值保存到一个对象中,然后把该对象传递到另一个WinForm窗体,请问该如何实现,最好能给到一小段代码,谢谢

第1个回答  推荐于2018-03-08
Form1中: List<string> s = new List<string>();

foreach (Control o in this.Controls)
{
if (o is CheckBox)
{
if (((CheckBox)o).Checked == true)
{
s.Add(this.checkBox1.Text);
}
}
}
Form2 f = new Form2(s);
f.Show();

Form2中重写构造函数:
public Form2()
{
InitializeComponent();
}
public Form2(List<string> lst)
{
InitializeComponent();
lst = s;
}本回答被提问者和网友采纳
第2个回答  2009-12-17
Form2中CheckValue()是一个Public方法,用于返回Check的值,不建议用Public变量,不安全

Form2 frm=new Form2();

if(frm.showDialog()==Dialog.ok)
{
this.TextBox1.Text=frm.checkValue();
}
第3个回答  2009-12-17
在有checkbox的窗体里把checkbox的Modifier由private改为public另外的窗体就可以直接访问这个checkbox的checked状态。或者增加一个共用boolean类型变量,在FromClose事件中把checkbox的值赋给该共用变量
第4个回答  2009-12-17
System.Collections.Generic.List<CheckBox> checkboxs = new System.Collections.Generic.List<CheckBox>();
if(CheckBox1.Checked)
{
checkboxs.add(CheckBox1);
}

另外的FORM里面做一个属性

public System.Collections.Generic.List<CheckBox> checkboxs
{
get;set;
}
相似回答