Использование C#, я пытаюсь создать отношения между двумя флажками: 1. chk_PeelTrace
и 2. chk_MoveTrace
, где только один флажок может быть проверен в то время, так что если PeelTrace
начинается как истинный , и я проверяю MoveTrace
, тогда MoveTrace
должен быть проверен, а PeelTrace
должен быть снят.Переключение между двумя C# флажков
Важно, однако, что одновременно обе стороны должны быть сняты одновременно. Я попробовал несколько разных вещей; некоторые из этих альтернатив прокомментированы в приведенном ниже примере.
Независимо от того, что я пытаюсь, я не смог заставить это работать должным образом. Я продолжаю работать в System.StackOverflowException, но не знаю, почему. Любые идеи или предложения о том, как это сделать?
private void chk_PeelTrace_CheckedChanged(object sender, EventArgs e)
{
////if (tracePeel)
//if (chk_PeelTrace.CheckState.Equals(CheckState.Checked))
if (chk_PeelTrace.Checked)
{
////tracePeel = false;
//chk_PeelTrace.CheckState = CheckState.Unchecked;
chk_PeelTrace.Checked = !chk_PeelTrace.Checked;
////traceMove = false;
//chk_MoveTrace.CheckState = CheckState.Unchecked;
chk_MoveTrace.Checked = false;
}
else
{
////traceMove = false;
//chk_MoveTrace.CheckState = CheckState.Unchecked;
chk_MoveTrace.Checked = false;
////tracePeel = true;
//chk_PeelTrace.CheckState = CheckState.Checked;
chk_PeelTrace.Checked = true;
}
}
private void chk_MoveTrace_CheckedChanged(object sender, EventArgs e)
{
//if (chk_MoveTrace.Checked == true)
////if (traceMove)
//if (chk_MoveTrace.CheckState.Equals(CheckState.Checked))
if (chk_MoveTrace.Checked)
{
////traceMove = false;
//chk_MoveTrace.CheckState = CheckState.Unchecked;
chk_MoveTrace.Checked = !chk_MoveTrace.Checked;
////tracePeel = false;
//chk_PeelTrace.CheckState = CheckState.Unchecked;
chk_PeelTrace.Checked = false;
}
else
{
////tracePeel = false;
//chk_PeelTrace.CheckState = CheckState.Unchecked;
chk_PeelTrace.Checked = false;
////traceMove = true;
//chk_MoveTrace.CheckState = CheckState.Checked;
chk_MoveTrace.Checked = true;
}
}
Вы сказали; * только один флажок может быть активным одновременно *. Для этого сценария используйте переключатель вместо флажка внутри группового ящика. – Irshad