lundi 11 janvier 2016

Toggle between two C# checkboxes

Hi I am new to C# and can't seem to figure this out... Any help would be greatly appreciated!

I am trying to create a relationship between two checkboxes: 1. chk_PeelTrace and 2. chk_MoveTrace, where only one checkbox can be active at a time, so that if PeelTrace starts as true, and I check MoveTrace, then MoveTrace becomes true while PeelTrace becomes false. Importantly however, they should also both be able to be false simultaneously. I have tried a number of different things; some of these alternatives are commented out in the example below.

I can't seem to get this working properly no matter what I try. It either behaves strangely or it doesn't work at all. As it stands I keep running into a System.StackOverflowException and am not sure why. Any ideas or suggestions on how to do this?

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




Aucun commentaire:

Enregistrer un commentaire