C# 公共控制元件之RadioBox ,CheckBox
阿新 • • 發佈:2018-11-10
通常RadioBox稱為單選按鈕,CheckBox稱為多選按鈕,這兩個控制元件都是從ButtonBase類中派生,可以將其視為按鈕。
多個checkBox之間的選擇是互相獨立的,互補影響。多個RadioButton之間是互斥的,只能選擇其中一個。同一個容器下的多個RadioButton之間互斥,來自不同容器的RadioButton 物件是相對獨立的。
RadioButton和CheckBox控制元件都有一個Checked屬性,如果控制元件處於選擇狀態,則Checked屬性的值為true否則為false。當選擇狀態發生改變後會引發CheckedChanged事件,可以通過這個事件開實時得知控制元件的選擇狀態。
1、建立這樣的一個視窗 ,使用了CheckBox和RadioBox控制元件
2、新增兩個label控制元件(用作資訊輸出)
3、為每一個checkbox 新增一個CheckBox共享處理事件 CheckedChanged當發生改變的時候出發該事件
4、在OncheckChanged新增如下程式碼
private void OnCheckChanged(object sender, EventArgs e) { DisplayCheckResults();//呼叫自定義方法 } private void DisplayCheckResults() { if (label1 != null) { //建立一個List<string>例項 List<string> strList = new List<string>(); //將被選中的CheckBox的Text屬性的內容新增到列表中 if (checkBox1.Checked) strList.Add(checkBox1.Text); if (checkBox2.Checked) strList.Add(checkBox2.Text); if (checkBox3.Checked) strList.Add(checkBox3.Text); if (checkBox4.Checked) strList.Add(checkBox4.Text); //字元拼接 串聯字串陣列的所有元素,其中在每個元素之間使用指定的分隔符。 // public static String Join(String separator, params String[] value); string res = string.Join("、", strList.ToArray()); //判斷是否全部都沒有被選擇,如果全部都沒有被選擇清除label1.text if ((checkBox1.Checked == false) && (checkBox2.Checked == false) && (checkBox3.Checked == false) && (checkBox4.Checked == false)) label1.Text = ""; else // 將指定字串中的一個或多個格式項替換為指定物件的字串表示形式。 label1.Text = string.Format("翻牌子:{0}", res); } }
5、為每一個RadioButton新增點選共享事件
6、在共享事件中輸入程式碼
private void OnClick(object sender, EventArgs e) { if (radioButton1.Checked) label2.Text = string.Format("{0}", radioButton1.Text); else if (radioButton2.Checked) label2.Text = string.Format("{0}", radioButton2.Text); else if (radioButton3.Checked) label2.Text = string.Format("{0}", radioButton3.Text); else label2.Text = ""; }
7、執行效果