Флажок один из четырех не работает в C# - PullRequest
0 голосов
/ 21 апреля 2020

Я написал код, в котором при нажатии одного флажка разбираются другие изображение кнопок
3 моих флажка работают нормально по имени, содержанию и дате, но когда я пытаюсь чтобы сделать то же самое с флажком по категории, я получаю следующее сообщение. error image Это мой код

 private void vieworder_Load(object sender, EventArgs e)
{
    try
    {
        con.Open();
        if (con.State == ConnectionState.Open)
        {
            lblstatus.Text = "Connected";
            lblstatus.ForeColor = Color.Green;
        }
        else
        {
            lblstatus.Text = "Not-Connected";
            lblstatus.ForeColor = Color.Red;
        }
        showdtgrid();



    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }

}

private void hidecheckbox()
{
    chkboxbyname.CheckState = CheckState.Unchecked;
    chkboxbydate.CheckState = CheckState.Unchecked;
    chkboxcontaining.CheckState = CheckState.Unchecked;
    checkBox1.CheckState = CheckState.Unchecked;

}





private void chkboxbyname_CheckedChanged(object sender, EventArgs e)
{
        hidecheckbox();

        chkboxbyname.CheckState = CheckState.Checked;

}

private void chkboxcontaining_CheckedChanged(object sender, EventArgs e)
{

        hidecheckbox();

    chkboxcontaining.CheckState = CheckState.Checked;

}

private void chkboxbydate_CheckedChanged(object sender, EventArgs e)
{

        hidecheckbox();

    chkboxbydate.CheckState = CheckState.Checked;


}
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
    hidecheckbox();
    checkBox1.CheckState = CheckState.Checked;
}


   }

}

Скажите, пожалуйста, что не так

Ответы [ 2 ]

0 голосов
/ 21 апреля 2020

Я был бы согласен с ответом hyrdroplaning3750, а также удивлялся, почему он произошел только в checkBox1_CheckedChanged в вашем коде. Я написал пример (Windows Forms), и переполнение стека появляется при первом выборе флажка.

Может быть, это возможность использовать переключатели, когда вам нужен один выбор.

0 голосов
/ 21 апреля 2020

На первый взгляд кажется, что переполнение стека напрямую связано с обработчиком событий для checkBox1_CheckedChanged .

Похоже, что обработчик вызывает hideCheckbox () , что, в свою очередь, изменяет CheckState вашего флажка на Unchecked . Это, в свою очередь, отключит ваш обработчик событий и, следовательно, создаст бесконечное число l oop.

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

Не могли бы вы попробовать полностью удалить обработчик событий, если он не нужен? В противном случае закомментируйте вызов hideCheckbox ()

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