【问题标题】:How Do I call individual radio buttons on if else statement when buttons are created dynamically?动态创建按钮时,如何在 if else 语句上调用单个单选按钮?
【发布时间】:2016-03-19 02:26:57
【问题描述】:

我有下面的代码,来自这个论坛的某个人的button1_Click,我不知道下一步是什么。假设我有 4 个单选按钮,有人可以向我展示一个示例,说明当我单击 button2 时如何根据各自的 if else 语句对每个单选按钮使用 if else 语句吗?

var list = new List<string>
{
    "First radio text", "Second radio text", "Third radio text", "And so on"
};

this.panel1.SuspendLayout();
for (var i = 0; i < list.Count; i++)
{
    var r = new RadioButton();
    r.Text = list[i];
    r.Tag = i;
    r.Name = string.Format("r{0}", i);
    r.Dock = DockStyle.Top;
    r.CheckedChanged += r_CheckedChanged;
    this.panel1.Controls.Add(r);
    r.BringToFront();
}
this.panel1.ResumeLayout(true);

【问题讨论】:

  • 你能说得更清楚点吗?什么 if-else 语句?你到底想做什么?
  • 如果选择单选按钮 1 执行此操作,如果选择单选按钮 2 执行此操作,依此类推,当我尝试在按钮 2 上进行 if else 编码时,每个按钮都会响应相同的 if else 语句,该语句仅针对单选进行编码按钮 1。如果我有单选按钮 3 的 if else 语句,为什么 is 语句也响应单选按钮 1 或 2 或 3?。
  • 换句话说,如果选中单选按钮1,则消息框“Hello world”很好。然后,如果我签入其他单选按钮,它也会触发假定仅用于单选按钮 1 的消息框。
  • 您如何检查 CheckedChanged 事件中的单选按钮?您必须获取发送者并检查其名称以比较哪个单选按钮触发了该事件。
  • 是的,Kyore 你是对的。我是初学者,能否给我看一个关于 button2 点击事件的代码示例?

标签: c# winforms if-statement radio-button


【解决方案1】:

您可以通过名称检查哪个单选按钮发送了事件:

private void r_CheckedChanged(object sender, EventArgs e)
        {
            RadioButton radio = sender as RadioButton;

            if (radio.Name == "r1")
                MessageBox.Show("Radio 1 checked changed to: " + radio.Checked);
            else if (radio.Name == "r2")
                MessageBox.Show("Radio 2 checked changed to: " + radio.Checked);
            else if (radio.Name == "r3")
                MessageBox.Show("Radio 3 checked changed to: " + radio.Checked);
            else
                MessageBox.Show("Unknow radio button");
        }

【讨论】:

    猜你喜欢
    • 2016-03-19
    • 2014-05-31
    • 2023-03-12
    • 2015-09-13
    • 2013-07-21
    • 2013-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多