如何创建一个事件来识别是否选中了多个单选按钮

本文关键字:是否 单选按钮 识别 一个 何创建 创建 事件 | 更新日期: 2023-09-27 18:02:58

我有以下代码检查每个单选按钮(Temp30, Temp40和Temp60),并做必要的事情,如打开洗涤温度灯等…

我想创建一个处理所有3个单选按钮的事件。我想这可能和他们所在的分组盒有关。(叫做TempGroupBox)

任何帮助将非常感激!

private void Temp30_CheckedChanged(object sender, EventArgs e)
{
    if (Temp30.Checked)
    {
        MainDisplayLabel.Text = ("   SELECT SPIN SPEED");
        WashTempLight.Visible = true;
        WashTempLight.Image = Properties.Resources._30degrees;
        SpeedGroupBox.Enabled = true;
    }
}
private void Temp40_CheckedChanged(object sender, EventArgs e)
{
    if (Temp40.Checked)
    {
        MainDisplayLabel.Text = ("   SELECT SPIN SPEED");
        WashTempLight.Visible = true;
        WashTempLight.Image = Properties.Resources._40degrees;
        SpeedGroupBox.Enabled = true;
    }
}
private void Temp60_CheckedChanged(object sender, EventArgs e)
{
    if (Temp60.Checked)
    {
        MainDisplayLabel.Text = ("   SELECT SPIN SPEED");
        WashTempLight.Visible = true;
        WashTempLight.Image = Properties.Resources._60degrees;
        SpeedGroupBox.Enabled = true;
    }
}

如何创建一个事件来识别是否选中了多个单选按钮

您可以将所有radioButton的事件绑定到相同的处理程序,并使用sender参数来获取操作所针对的控件。

private void Temps_CheckedChanged(object sender, EventArgs e)
{
    string checkedName = ((RadioButton)sender).Name;
    if(checkedName == "Temp40")
    {
        ...
    }
    else if(checkedName == "Temp60")
    {
        ...
    }
}

您可以添加事件处理程序的所有RadioBUttons的InitializeComponent()之后:

var radioButtons =this.Controls.OfType<RadioButton>();
foreach (RadioButton item in radioButtons)
{
      item.CheckedChanged += Temps_CheckedChanged;
}