C#编程 其中radioButton控件48个,button控件24个,请教各位大牛,如何简化编写,功能如下代码重复24次。 1C

private void radioButton1_CheckedChanged(object sender, EventArgs e)
{
if (radioButton1.Checked == true)

            button1.BackColor = Color.Red;
    }

private void radioButton2_CheckedChanged(object sender, EventArgs e)
{
if (radioButton2.Checked == true)
button1.BackColor = Color.Blue;
}
private void button1_Click(object sender, EventArgs e)
{
button1.BackColor = Color.White;
radioButton1.Checked = false;
radioButton2.Checked = false;
}

5个回答

把所有的click事件都设置为这个方法

不是很明白你的功能需求.,也许有更好的设计方案

目前来说.可以考虑将radioButton控件放到radioButton数组中..
要么就定义一个函数,参数为你需要操作到的对象,,每次调用将对象传进来进行相应操作

Private Void radioButton_checkedchange(object sender,EventArgs e)
{
If(((RadioButton)sender).checked==true)
((RadioButton)sender).BackColor=Color.Red;
}
手机手打不易,巧用sender!

 public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            AddEvent();
        }

        private void buttonClick(object sender, EventArgs e)
        {
            //这里写入你希望做的内容
            Button btnTmp = (Button)sender;
            btnTmp.Text = DateTime.Now.ToString();
        }

        /// <summary>
        /// 遍历控件,绑定方法。
        /// </summary>
        private void AddEvent()
        {
            Button btnTmp;
            foreach (Control ctrlTmp in this.Controls)
            {
                if (ctrlTmp is Button)
                {
                    //如果你窗口或者容器上,只希望某部分这类控件绑定,就设定这些控件的Tag属性,这里增加判断if(btnTmp.Tag=...),或者通过名称判断等方法。
                    btnTmp = (Button)ctrlTmp;
                    btnTmp.Click += buttonClick;
                }
            }
        }
    }

直接指向同一个事件 啊

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐