C# 在Winforms中更改清除窗体上单选按钮的文本颜色

C# 在Winforms中更改清除窗体上单选按钮的文本颜色,c#,winforms,visual-studio,radio-button,C#,Winforms,Visual Studio,Radio Button,我在Winforms应用程序中使用C#,我似乎无法在我的3组单选按钮上更改回默认/未选择的颜色。我知道有一种方法不必按每个按钮单独操作。foreach中用于清除选中状态的部分工作正常。这是我试过的 public void ClearForm() { foreach (RadioButton radio1 in carbonationGroupBox.Controls.OfType<RadioButton>().ToList())

我在Winforms应用程序中使用C#,我似乎无法在我的3组单选按钮上更改回默认/未选择的颜色。我知道有一种方法不必按每个按钮单独操作。
foreach
中用于清除选中状态的部分工作正常。这是我试过的

 public void ClearForm()
        {
            foreach (RadioButton radio1 in carbonationGroupBox.Controls.OfType<RadioButton>().ToList())

                if (radio1.Checked == true)
                {
                    radio1.ForeColor = Color.Black;
                    radio1.Checked = false;
                }

            foreach (RadioButton radio2 in strengthGroupBox.Controls.OfType<RadioButton>().ToList())

                if (radio2.Checked == true)
                {
                    radio2.ForeColor = Color.Black;
                    radio2.Checked = false;
                }

            foreach (RadioButton radio3 in sweetnessGroupBox.Controls.OfType<RadioButton>().ToList())

                if (radio3.Checked == true)
                {
                    radio3.ForeColor = Color.Black;
                    radio3.Checked = false;
                }

我发现的问题是
foreach
区域内的事件顺序

本命令:

            if (radio1.Checked == true)
            {
                radio1.ForeColor = Color.Black;
                radio1.Checked = false;
            }
正在触发_CheckChanged事件并将颜色恢复为淡黄色

private void topStrengthHydromel_CheckedChanged(object sender, EventArgs e)
{
    topStrengthStandard.ForeColor = Color.Black;
    topStrengthSack.ForeColor = Color.Black;
    topStrengthHydromel.ForeColor = Color.Lime;
    strengthRadioButton = "Hydromel";
}

切换顺序,使
radio1.Checked=false
出现在
radio1.ForeColor=Color.Black之前成功了

你到底想再做什么?你是如何改变它们的颜色的?这段代码有什么问题?再增加一个
单选按钮如何?比如说,文本@Ian中没有任何内容。。。“无”不能有另一个单选按钮,因为必须从每个组中选择一个单选按钮。
private void topStrengthHydromel_CheckedChanged(object sender, EventArgs e)
{
    topStrengthStandard.ForeColor = Color.Black;
    topStrengthSack.ForeColor = Color.Black;
    topStrengthHydromel.ForeColor = Color.Lime;
    strengthRadioButton = "Hydromel";
}