Массив флажков в C # - PullRequest
       3

Массив флажков в C #

4 голосов
/ 25 августа 2010

Я пытаюсь создать массив флажков в Winforms, и у меня есть четыре флажка, и если я нажимаю флажок, в окне сообщения должны отображаться флажки.

 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();
    }

продолжается 3 и 4 тоже ...

Как мне это сделать ?? Благодарю.

Ответы [ 2 ]

3 голосов
/ 25 августа 2010

Ваше окончание цикла должно быть i < 4, а не i <= 4, поскольку в вашем массиве всего 4 элемента. Также boxes[i].Checked == true является избыточным, вы можете просто сказать boxes[i].Checked.

Если вы хотите отобразить флажки при переключении состояния, вам нужно добавить к ним обработчик событий (для обработки события 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;
}
0 голосов
/ 25 августа 2010

Пожалуйста, смотрите эту ссылку, как использовать события CheckBox

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...