Checkbox array in c #

I am trying to create an array of flags in Winforms, and I have four flags, and if I click on the flag, the flags should be checked in the message box.

public void checkboxtest() { CheckBox[] boxes = new CheckBox[4]; boxes[0] = checkBox1; boxes[1] = checkBox2; boxes[2] = checkBox3; boxes[3] = checkBox4; for (int i = 0; i <= 4; i++) { if (boxes[i].Checked == true && boxes[i].Enabled) { MessageBox.Show("boxes[i] is clicked"); } } } private void checkBox1_CheckedChanged(object sender, EventArgs e) { checkboxtest(); } private void checkBox2_CheckedChanged(object sender, EventArgs e) { checkboxtest(); } 

continues for 3 and 4 too ...

How can I do it? Thank you

+4
source share
2 answers

Your loop completion should be i < 4 , not i <= 4 , since your array has only 4 elements. Also boxes[i].Checked == true is redundant, you can just say boxes[i].Checked . boxes[i].Checked .

If you want to display checked flags when switching state, you need to add an event handler to them (for processing CheckBox.CheckChanged ):

 public partial class Form1 : Form { public Form1() { InitializeComponent(); _checkBoxes = new CheckBox[] { _checkBox1, _checkBox2, _checkBox3, _checkBox4 }; foreach (var checkBox in _checkBoxes) checkBox.CheckedChanged += new EventHandler(ShowCheckedCheckboxes); } void ShowCheckedCheckboxes(object sender, EventArgs e) { string message = string.Empty; for (int i = 0; i < _checkBoxes.Length; i++) { if (_checkBoxes[i].Checked && _checkBoxes[i].Enabled) { message += string.Format("boxes[{0}] is clicked\n", i); } } MessageBox.Show(message); } CheckBox[] _checkBoxes; } 
+3
source

See this link on how to use CheckBox events.

http://msdn.microsoft.com/en-us/library/fc6zk5bz(v=VS.85).aspx

0
source

All Articles