5つのチェックボックスを持つフォームデザインがあります。私はそれらをBus1、Bus2 ... Bus5と呼ぶでしょう。エクスポートチェックForm1.checkBoxesからForm2.listBox
私は、リストボックスを持つForm2を表示する「編集」ボタンがあります。
"編集"ボタンを押すと、チェックボックスだけを取り出してlistBoxに入れたいと思っています。
私は個々のチェックボックスをチェックして、本当であればそれらをリストに追加することを考えていました。
private void button1_Click(object sender, EventArgs e)
{
if(checkBox1.Checked==true)
{
form2.listBox1.Items.Add("checkBox1.Text");
}
if(checkBox2.Checked==true)
{
...
}
...
}
これは正しい方法ですか、それとも良い方法がありますか?
おかげ
編集--------------------------------------
foreach (var checkBox in this.Controls.OfType<CheckBox>().Where(c => c.Checked))
{
form2.listBox1.Items.Add(checkBox.Text);
}
あなたは、文字列のようなチェックボックス変数名についての情報が必要な場合"checkBox1.Text"
あなたがTuple<string,CheckBox>[]
やDictionary<string,CheckBox>
の作成を検討してnameof
FOを使用することができます:あなたは、フォーム上のすべてのチェックボックスを必要とする場合、これは動作するはず
private void button1_click(object sender, EventArgs e)
{
Form2 form2 = new Form2();
form2.Show();
foreach(var checkBox in this.Controls.OfType<CheckBox>().Where(c=>c.Checked))
{
form2.listBox1.Items.Add(checkBox.Text);
}
}
私たちは、あなたが呼び出すことができる形ですべてのチェックボックスを必要としているアカウントで撮影関数 'PopulateListBox'を以下のようにします:' form2.PopulateListBox(this.Controls.OfType()) '。そして 'IEnumerable 'の入力引数を置き換えると、 'param'引数のために作成される冗長配列が作成されなくなります。 –
私は、_all_が含まれていない場合のチェックボックスをユーザーが選択する柔軟性を求めました。 – ja72