Hallo,
ich habe 3 Radiobuttons in einer Groupbox und allen dreien den gleichen Eventhandler zugeordnet. beim Ausführen lande ich in einer Endlosschleife. Hat jemand eine Erklärung?
Hier der Code zum spielen:
<PRE>
private void radioButton1_CheckedChanged(object sender, System.EventArgs e)
{
RadioButton aButton = sender as RadioButton;
if (aButton.Checked)
{
try
{
switch (aButton.Name)
{
case "radioButton1":
MessageBox.Show (aButton.Name);
aButton.Checked = false;
break;
case "radioButton2":
MessageBox.Show (aButton.Name);
aButton.Checked = false;
break;
case "radioButton3":
MessageBox.Show (aButton.Name);
aButton.Checked = false;
break;
}
MessageBox.Show ("Meldung");
} // try
catch
{
MessageBox.Show ("Exception");
aButton.Checked = false;
} // catch
} // if
}
</PRE>
Die folgende Variante funktioniert wie erwartet:
<PRE>
private void radioButton1_CheckedChanged(object sender, System.EventArgs e)
{
RadioButton aButton = sender as RadioButton;
if (aButton.Checked)
{
try
{
switch (aButton.Name)
{
case "radioButton1":
MessageBox.Show (aButton.Name);
MessageBox.Show ("Meldung");
aButton.Checked = false;
break;
case "radioButton2":
MessageBox.Show (aButton.Name);
MessageBox.Show ("Meldung");
aButton.Checked = false;
break;
case "radioButton3":
MessageBox.Show (aButton.Name);
MessageBox.Show ("Meldung");
aButton.Checked = false;
break;
}
} // try
catch
{
MessageBox.Show ("Exception");
aButton.Checked = false;
} // catch
} // if
}
</PRE>
ich habe 3 Radiobuttons in einer Groupbox und allen dreien den gleichen Eventhandler zugeordnet. beim Ausführen lande ich in einer Endlosschleife. Hat jemand eine Erklärung?
Hier der Code zum spielen:
<PRE>
private void radioButton1_CheckedChanged(object sender, System.EventArgs e)
{
RadioButton aButton = sender as RadioButton;
if (aButton.Checked)
{
try
{
switch (aButton.Name)
{
case "radioButton1":
MessageBox.Show (aButton.Name);
aButton.Checked = false;
break;
case "radioButton2":
MessageBox.Show (aButton.Name);
aButton.Checked = false;
break;
case "radioButton3":
MessageBox.Show (aButton.Name);
aButton.Checked = false;
break;
}
MessageBox.Show ("Meldung");
} // try
catch
{
MessageBox.Show ("Exception");
aButton.Checked = false;
} // catch
} // if
}
</PRE>
Die folgende Variante funktioniert wie erwartet:
<PRE>
private void radioButton1_CheckedChanged(object sender, System.EventArgs e)
{
RadioButton aButton = sender as RadioButton;
if (aButton.Checked)
{
try
{
switch (aButton.Name)
{
case "radioButton1":
MessageBox.Show (aButton.Name);
MessageBox.Show ("Meldung");
aButton.Checked = false;
break;
case "radioButton2":
MessageBox.Show (aButton.Name);
MessageBox.Show ("Meldung");
aButton.Checked = false;
break;
case "radioButton3":
MessageBox.Show (aButton.Name);
MessageBox.Show ("Meldung");
aButton.Checked = false;
break;
}
} // try
catch
{
MessageBox.Show ("Exception");
aButton.Checked = false;
} // catch
} // if
}
</PRE>
Comment