2017-05-10 190 views
-1

我開發了一個winform,它有幾個單選按鈕,複選框,下拉菜單和一個文本框。需要填寫基於所提控制所做的選擇文本框,Winform控件更改事件火災

例如:如果上午選擇radiobtn1,checkBox1 & dropdown1`s第一個值,那麼它應該像下面

txtBox.text = radiobtn1.Text_checkBox1.Text_dropdown1.SelectedIndex 

瀏覽過這個我發現它可以使用委託來完成,但我喜歡12個控件,您是否建議使用代表? 任何其他編寫此代碼的簡短方法?

+0

這不是「做我的家庭作業」論壇。 – Marshal

回答

0

編寫代碼的最簡單方法可能是創建一個填充文本框的事件處理程序。它看起來像這樣:

private void UpdateTextbox(object sender, EventArgs e) 
{ 
    //find the text 
    txtBox.Text = string.Format("{0}_{1}_{2}", radiobtn1.Text, checkBox1.Text, dropdown1.SelectedIndex); 
} 

然後,你只需要鏈接通過更改其他控件引發的所有事件到事件處理程序。

//Add these lines to the constructor of your control 
radiobtn1.CheckChanged += UpdateTextbox; 
checkbox1.CheckChanged += UpdateTextbox; 
//and so on 
+0

當radiobtn2或其餘部分發生更改時,無法使用代碼進行替換。 – StackHack

+0

是的,你可以。我剛剛展示了一個簡單的'UpdateTextbox'函數,但是您可以確定哪個單選按鈕被選中,然後使用該單選按鈕中的文本。 –