解释起来很容易,但很复杂:
我有一个复选框,总共10个,但是有一个限制,我们只能选中10个中的5个。 假设我们在两个框中打勾,然后按验证。 我会得到一个像这样的布尔数组:
true,false,true,false,false,true,false,false,false,false
知道每个盒子都有一个值: 第一个盒子=动物 第二个盒子=大写。...
现在我要问我的问题:
我有5个标签,我希望它是5个标签,对应于复选框的值。 因此,如何使其成为5个标签都是与复选框相对应的不同值。
这是我的代码:
bool[] categorie = new bool[10] {
false, true, false ,true ,false ,
true ,false ,true, false, true };
string[] categorieName = new string[10] {
"Animaux", "Capitale", "Fruit", "Légume", "Pays",
"Prénom fille", "Prénom garçon", "Métier", "Moyen de transport", "Sport" };
所以我已经完成了bool数组,但是它会根据复选框自行完成
第二个是价值。
所以我希望我的标签是:
Capitale,Légume,付款,保利加尔孔,交通运输
谢谢您,请解释一个解决方案(循环吗?如果不知道)
答案 0 :(得分:0)
让我们将CheckBox
整理到一个集合中,例如数组:
Tuple<CheckBox, Control>[] m_Categories = null;
public MyForm() {
// I've assumed WinForms - InitializeComponent()
InitializeComponent();
// CheckBox and its corresponding Label
m_Categories = new Tuple<CheckBox, Control>[] {
Tuple.Create(cbAnimaux, labelAnimaux),
Tuple.Create(cbCapitale, labelCapitale),
...
Tuple.Create(cbSport, labelSport),
};
}
然后,您可以轻松更新相应的Label
:
foreach (var record in m_Categories)
record.Item2.Text = record.Item1.Checked // If CheckBox is
? record.Item1.Text // checked, label gets CheckBoxes Text
: ""; // not checked, label has an empty Text