1. 程式人生 > >c# 多個相同控制元件使用同一個方法詳解

c# 多個相同控制元件使用同一個方法詳解

相信很多朋友遇到多個button執行一個帶著不同引數的方法,或者多個checkbox執行同樣型別的方法,程式碼繁瑣又羅素,都是複製黏貼的活,沒點技術含量,下面就是”充電五分鐘,通話半小時”的寫法。

不囉嗦,上乾貨!

 private void cb_Check1_CheckedChanged(object sender, EventArgs e)
        {
            chkAntenna(sender); //讓所有的checkbox都執行用這個方法
        }

        public void chkAntenna(object sender) //獲取呼叫事件裡 checkbox方法
        {

            if (((CheckBox)sender).Checked == true)
            {
                switch (((CheckBox)sender).Tag.ToString())   //給所有的checkbox的tag都編上號
                {
                    case "antenna_Check1":
                        Panel1.Visible = true;
                        break;
                    case "antenna_Check2":
                        Panel2.Visible = true;
                        break;
                    case "antenna_Check3":
                        Panel3.Visible = true;
                        break;
                    case "antenna_Check4":
                        Panel4.Visible = true;
                        break;
                    case "antenna_Check5":
                        Panel5.Visible = true;
                        break;
                    default:
                        break;
                }
            }
            else
            {
                switch (((CheckBox)sender).Tag.ToString())
                {
                    case "antenna_Check1":
                        Panel1.Visible = false;
                        break;
                    case "antenna_Check2":
                        Panel2.Visible = false;
                        break;
                    case "antenna_Check3":
                        Panel3.Visible = false;
                        break;
                    case "antenna_Check4":
                        Panel4.Visible = false;
                        break;
                    case "antenna_Check5":
                        Panel5.Visible = false;
                        break;
                    default:
                        break;
                }
            }
        
        }