2014-09-28 68 views
0

這是一個非常基本的問題,但我找不到任何解決方案。c#鏈接兩個動態添加的控件。 (Windows窗體應用程序)

我有這個代碼,當用戶按下按鈕時,它動態地創建一個組合框和一個標籤。我的問題是現在,我如何鏈接組合框和標籤,以便標籤顯示組合框中選擇的內容?

// Tilføjer combobox 
ComboBox cboRun = new ComboBox(); 
cboRun.Name = "cboDynamic1" + c++; 
cboRun.Location = new System.Drawing.Point(10, 10 + (20 * c)); 
cboRun.Size = new System.Drawing.Size(200, 25); 
cboRun.BringToFront(); 
cboRun.Enter += CBox_Enter; 
grb_MealOne.Controls.Add(cboRun); 

// Tilføjer label 
Label labRun = new Label(); 
labRun.Name = "labDynamic1" + c; 
labRun.Location = new System.Drawing.Point(270, 10 + (20 * c)); 
labRun.Size = new System.Drawing.Size(25, 25); 
labRun.BringToFront(); 
labRun.Text = "Neee"; 
grb_MealOne.Controls.Add(labRun); 

我真的沒有任何想法如何做到這一點。嘗試了很多不同的東西!

+0

你必須將這些控件保存在一個數組或其他(如列表) – 2014-09-28 06:00:35

回答

0
Label L; 
public void YourMethod() 
{ 
    //Create the `ComboBox1` and set the event `comboBox1_SelectedIndexChanged` to it 
    Label Y = new Label(); 
    // ... 
    L = Y; 
} 
public void comboBox1_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    L.Text = "Something else"; 
} 

這個領域(L)是你Label,你可以在任何地方使用它。

+0

但是,這隻有當組合框的名稱是'combobox1'時才起作用? 謝謝! – 2014-09-28 07:27:27

+1

不!只要命名'ComboBox'就可以!關鍵在於,您應該將標籤存儲在類的一個字段中,然後更改「ComboBox」的'SelectedIndexChanged'事件中的文本!而已!太簡單! – 2014-09-28 07:39:22

+0

@janusMack在提問StackOverflow之前,請先做好功課。你的作業是什麼?這裏是:閱讀有關您的編程語言和環境的書籍,閱讀您的編程語言和庫的文檔(這裏是C#和.NET),閱讀大量代碼示例,嘗試不同的方式,最後搜索網頁。 – 2014-09-28 07:42:01

相關問題