2017-04-24 50 views
0

我目前正在c#中的winform上創建一個網上商店。有沒有辦法通過一個控件來控制所有單選按鈕?而不是爲每個單選按鈕(C#)傳遞控制

目前我正在創建一個「購物籃」相關文本框,如果用戶單擊某個單選按鈕,文本框會在文本框中顯示該產品的說明。

我已經將組單選框中的單選按鈕分組,並希望知道是否有任何相當於所有單選按鈕的'SelectedIndex'命令?謝謝。

+0

訂閱所有單選按鈕相同的'CheckedChanged'事件。 –

+0

@DangerZone你能舉一個這樣的例子嗎?附:一次可以選擇多個單選按鈕。謝謝! – TheBiz

+1

如果可以一次選擇多個,則不應將它們一起包含在同一個組合框中。改爲使用複選框。 –

回答

0

只需將所有單選按鈕訂閱到同一事件即可。然後,您可以採取行動對其進行檢查並採取相應行動,而不是爲每個按鈕設置重複代碼。
下面是一個簡單的例子,設置一個文本框的Text屬性來顯示哪個被選中。

Form類

public partial class Form1 : Form 
{ 

    public Form1() 
    { 
     InitializeComponent(); 
    } 

    private void radioButtons_CheckedChanged(object sender, EventArgs e) 
    { 
     //Do whatever you need to do here. I'm simple setting some text based off 
     //the name of the checked radio button. 

     System.Windows.Forms.RadioButton rb = (sender as System.Windows.Forms.RadioButton); 
     textBox1.Text = $"{rb.Name} is checked!"; 
    } 
} 

在了.Designer.cs文件

//Note that the EventHandler for each is the same. 
this.radioButton3.CheckedChanged += new System.EventHandler(this.radioButtons_CheckedChanged); 
this.radioButton2.CheckedChanged += new System.EventHandler(this.radioButtons_CheckedChanged); 
this.radioButton1.CheckedChanged += new System.EventHandler(this.radioButtons_CheckedChanged); 
+0

這可以工作,有沒有一種方法,我可以在列表格式的文本框中的值?所以用戶點擊say 3單選按鈕,這會在文本框中創建3個產品的列表? 我感覺好像我可能已經複雜了,所以如果沒有其他的方式,我將不得不看看使用按鈕來代替。謝謝! – TheBiz

+0

@TheBiz - 首先,就像我在對問題本身的評論中提到的那樣,如果可以選擇多個選項,請選擇除單選按鈕之外的其他選項。如果他們位於表單上的同一區域,則一次只能選擇1個。否則,複選框就是更好的用戶體驗。但是要回答你的問題,是的,只需使文本框成爲多行,並在事件中根據檢查的內容構建文本。 –

+0

好的,這對我來說非常合適,因爲我已經對產品進行了分類,因此單選按鈕可以高效地工作。然而,我已經使用你的代碼和我自己的代碼一起在文本框中輸入一個值,但它顯示的是'設計名'而不是實際的產品。我已經使用類來定義我的產品,我將如何輸入這個,所以當我點擊一個單選按鈕時,它會顯示產品而不是按鈕的設計名稱?謝謝(對不起,如果這是一個非常簡單的問題) – TheBiz

0

如果您希望能夠一次選擇多個單選按鈕,我建議您使用複選框而不是單選按鈕。您可以將其所有事件分配給同一個事件,並控制選中哪個複選框。

private void checkBox_CheckedChanged(object sender, EventArgs e) 
    { 
     CheckBox checkBoxControl = (CheckBox) sender; // You can use this variable to see which one of the checkbox is checked. 
    } 
相關問題