簡介:

        介紹單選框控制元件RadioButton。當多個 RadioButton 控制元件出現時,使使用者能夠從一組選項中選擇一個選項。

 

介紹:

1.屬性

常用屬性
Name 獲取或設定控制元件的名稱。
Text

獲取或設定與此控制元件顯示的文字。在此控制元件中一般不適用。

AutoSize

獲取或設定一個值,該值指示控制元件是否基於其內容調整大小。

TextAlign

獲取或設定此控制元件上的文字對齊方式。

Checked

獲取或設定一個值,該值指示是否已選中控制元件。若選中了單選框,則為 true;反之,則為 false。

Appearance

獲取或設定一個值,該值用於確定 RadioButton 的外觀。如果 Appearance 值設定為 Normal,則在繪製 RadioButton 控制元件時使用圓形複選框。 若該值設定為 Button,則將 RadioButton 繪製成一個可切換為向上或向下狀態的控制元件。 每種型別都可顯示文字或影象,或同時顯示兩者。

TabStop

獲取或設定一個值,該值指示使用者能否使用 Tab 鍵將焦點放到該控制元件上。

Tag

獲取或設定包含有關控制元件的資料的物件。

 

2.事件

常用事件
CheckedChanged

Checked 屬性的值更改時發生。

 

3.使用

  1. 一般更改屬性Name,Text,使用事件CheckedChanged。當超過兩個以上時,可以考慮把不同控制元件繫結相同的事件,在控制元件檢視屬性的CheckedChanged事件輸入相同的繫結函式名。當然也可以分別使用不同的繫結函式名。
  2. 把要互斥的單選框控制元件放在同一個容器中,常用GroupBox。

如下圖:

 

 

4.原理

  1. CheckedChanged事件和radioButton_CheckedChanged繫結。選擇狀態更改時,會觸發。
this.radioButton1.CheckedChanged += new System.EventHandler(this.radioButton_CheckedChanged);
this.radioButton2.CheckedChanged += new System.EventHandler(this.radioButton_CheckedChanged);
        private void radioButton_CheckedChanged(object sender, EventArgs e)
        {

        }

 

5.演示

  1. 獲取選中狀態。通過屬性Checked判斷狀態。修改屬性Tag或者Text來判斷是哪個控制元件被選中。
  2. 更改顯示樣式。Appearance 屬性設定為 Button。
        private void radioButton_CheckedChanged(object sender, EventArgs e)
        {
            RadioButton rbn = sender as RadioButton;

            //第一種
            if (rbn.Checked)
            {
                string tag = rbn.Tag.ToString();
                if (tag == "男")
                {

                    //Do something          
                }
                else
                {
                    //Do something
                }
                MessageBox.Show(tag);
            }

            ////第二中種
            //if (rbn.Checked)
            //{
            //    string name = rbn.Text;
            //    if (name == "男")
            //    {
            //        //Do something
            //    }
            //    else
            //    {
            //        //Do something
            //    }
            //    MessageBox.Show(name);
            //}
        }

 如下圖: