2012-11-24 43 views
11

我有一個組框包含單選按鈕 例如。如何獲得單選按鈕的價值?

Ø

Ø

我希望我的代碼來獲取單選按鈕的選定值,並將其複製到字符串類型的變量 好心使用簡單的代碼導致米不是很專業

謝謝

+1

你的意思是單選按鈕? –

+1

嘿@CodingMash他稱之爲'比例按鈕'無處不在我真的想到任何這樣的控制! – sajanyamaha

+0

它是一個絕對的類型,她給出了單選按鈕的例子,男性女性。 –

回答

18

爲Win形式:

來獲取值(假設你想要的值,而不是文本)從一個單選按鈕,你會得到Checked屬性:

string value = ""; 
bool isChecked = radioButton1.Checked; 
if(isChecked) 
    value=radioButton1.Text; 
else 
    value=radioButton2.Text; 

Web窗體:

和CS-在某些按鈕點擊

string value=rdoPriceRange.SelectedItem.Value.ToString(); 
5

你需要檢查一個,如果你有兩個

if(rbMale.Checked) 
{ 

} 
else 
{ 

} 

您需要檢查所有的複選框,如果兩個以上

if(rb1.Checked) 
{ 

} 
else if(rb2.Checked) 
{ 

} 
else if(rb3.Checked) 
{ 

} 
+0

如果您沒有設置默認屬性,則需要檢查是否有兩個。 – Jesse

+1

關閉主題,但讓我們編程正確:爲什麼你檢查「if(a == true)」是不是足以讓布爾值檢查「if(a)」。你的方法好像是「if(a == true){b = true;} else {b = false;}」,而實際上你的意思是「b = a;」 –

1

你也可以使用一個公共事件對你的單選按鈕,你可以使用Tag屬性來傳遞信息添加到您的字符串中,或​​者如果您希望字符串保持與RadioButton的文本相同的值,則可以使用文本屬性。

就是這樣。

private void radioButton_CheckedChanged(object sender, EventArgs e) 
{ 
    if (((RadioButton)sender).Checked == true) 
     sex = ((RadioButton)sender).Tag.ToString(); 
} 
1

我發現,使用上述的公共事件工作得很好,你可以有建立這樣的公共事件:

private void checkChanged(object sender, EventArgs e) 
    { 
     foreach (RadioButton r in yourPanel.Controls) 
     { 
      if (r.Checked) 
       textBox.Text = r.Text; 
     } 
    } 

當然,那麼你就不能有其他控制在面板,但是如果你只有一個單獨的面板用於所有單選按鈕(例如在組框中使用子面板,或者您更喜歡組織控件),那麼它很有用

0

另一種方法是使用枚舉和一個擴展標準RadioBu的組件類tton。

public enum Genders 
{ 
    Male, 
    Female 
} 

[ToolboxBitmap(typeof(RadioButton))] 
public partial class GenderRadioButton : RadioButton 
{ 
    public GenderRadioButton() 
    { 
     InitializeComponent(); 
    } 

    public GenderRadioButton (IContainer container) 
    { 
     container.Add(this); 

     InitializeComponent(); 
    } 

    public Genders gender{ get; set; } 
} 

使用黎民事件處理GenderRadioButtons

private void Gender_CheckedChanged(Object sender, EventArgs e) 
{ 
    if (((RadioButton)sender).Checked) 
    { 
     //get selected value 
     Genders myGender = ((GenderRadioButton)sender).Gender; 
     //get the name of the enum value 
     string GenderName = Enum.GetName(typeof(Genders), myGender); 
     //do any work required when you change gender 
     switch (myGender) 
     { 
      case Genders.Male: 
       break; 
      case Genders.Female: 
       break; 
      default: 
       break; 
     } 
    } 
}