Checkbox array in C#

21,195

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

If you want to display the checked checkboxes when you toggle the state, you'll need to add an event handler to them (to handle the CheckBox.CheckChanged event):

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;
}
Share:
21,195
SLp
Author by

SLp

Updated on July 09, 2022

Comments

  • SLp
    SLp almost 2 years

    Im trying to create a array of Checkboxes in Winforms and I have four Checkboxes and if I click on a Checkbox, a messagebox should display the checkboxes checked.

     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 should I go about it ?? Thanks.