选中无线电时更新标签文本

时间:2012-03-12 15:57:41

标签: c# forms radio-button label

我有3个不同的单选按钮和一个标签。选中无线电时如何更新该标签上的文字?

    private void Button_Click(object sender, EventArgs e)
    {
        foreach (Control item in groupBox1.Controls)
        {
            if(item.GetType() == typeof(RadioButton))
            {
                if (((RadioButton)item).Checked)
                {
                    label1.text = obj[item.TabIndex-1].name;
                }

            }

        }
    }

我写了类似的东西,但它连接到按钮,但我不希望它以这种方式工作。我想把事件连接到所有3个单选按钮,但我不知道该怎么做。

4 个答案:

答案 0 :(得分:4)

您应该查看为每个单选按钮添加事件。具体来说,请查看CheckedChanged事件。

protected void ARadioButton_CheckedChanged(object sender, EventArgs e)
{
    if (sender is RadioButton)
    {
       RadioButton radioButton = (RadioButton)sender;
       if (radioButton.Checked)
       {
           label.Text = ARadioButton.Text;
       }
}

或者如Oded所提到的,使用相同的事件并利用sender参数。他们都会指出同一事件。

//somewhere in your form object, probably InitializeComponent()
ARadioButton1.CheckChanged += new EventHandler(ARadioButton_CheckedChanged);
ARadioButton2.CheckChanged += new EventHandler(ARadioButton_CheckedChanged);
ARadioButton3.CheckChanged += new EventHandler(ARadioButton_CheckedChanged);

protected void ARadioButton_CheckedChanged(object sender, EventArgs e)
{
    if (sender is RadioButton)
    {
        RadioButton radioButton = (RadioButton)sender;
        if (radioButton.Checked)
        {
            label1.Text = "Clicked " + radioButton.Name;
        }
    }
}

答案 1 :(得分:0)

btn1.Click += Button_Click;
btn2.Click += Button_Click;
btn3.Click += Button_Click;

然而,这不是一个好方法,但我的回答是基于你的问题评论“我想让事件连接到所有3个单选按钮,但我不知道该怎么做。”

答案 2 :(得分:0)

试试这个:

private void radioButton_CheckedChanged(object sender, EventArgs e)
    {
        var element = sender as RadioButton;
        Debug.Assert(element != null, "element != null");
        if (element.Checked)
        {
            label1.Text = element.Name;
        }
    }

答案 3 :(得分:0)

首先需要定义将处理事件的方法。它可以与上面的Button_Click方法完全相同,但您应该更改名称,例如更改为radioButton_CheckedChanged

接下来,您需要将此方法连接到选择状态更改时由单选按钮引发的事件。在调用InitializeComponent()

之后,应该在表单构造函数中完成此操作
   radioButton1.CheckedChanged += new System.EventHandler (radioButton_CheckedChanged);
   radioButton2.CheckedChanged += new System.EventHandler (radioButton_CheckedChanged);
   radioButton3.CheckedChanged += new System.EventHandler (radioButton_CheckedChanged);

radioButton1等替换为无线电控件的名称。