2014-10-01 67 views
0

我製作了一個代碼,旨在製作帶有關聯標籤的組合框。我怎樣才能讓標籤顯示在組合框中找到的值。C# - 動態控件(組合框+標籤)

每次按下按鈕時都會提供一個組合框和一個標籤,所以會有x個組合框和標籤。

ArrayList cboRunList = new ArrayList(); 
    ArrayList labRunList = new ArrayList(); 
    private void button1_Click(object sender, EventArgs e) 
    { 
     // Tilføjer ComboBoxe 
     ComboBox cboRun = new ComboBox(); 
     string[] s = { "", "a", "b", "c", "d", "1", "2", "3", "4" }; 
     cboRun.DataSource = s; 
     cboRun.Location = new System.Drawing.Point(10, 10 + (20 * c)); 
     cboRun.Size = new System.Drawing.Size(200, 25); 
     cboRunList.Add(cboRun); 
     cboRun.Click += new EventHandler(cboRun_Click); 
     Controls.Add(cboRun); 


     // Tilføjer label 
     Label labRun = new Label(); 
     labRun.Name = "LabDyn" + c; 
     labRun.Location = new System.Drawing.Point(270, 10 + (20 * c)); 
     labRun.Size = new System.Drawing.Size(1000, 20); 
     labRunList.Add(labRun); 
     labRun.Text = "LabDyn" + c; 
     Controls.Add(labRun); 
     c = c + 1; 
+0

我們不知道如何在不看到原始代碼的情況下對現有代碼庫進行更改。請發表[需要更改的最簡單示例](http://stackoverflow.com/help/mcve),並完整說明需要修改的內容。 – gunr2171 2014-10-01 14:44:37

+1

您需要創建一個'UserControl'。 – 2014-10-01 14:44:39

+1

爲了獲得代碼,必須先給代碼。 – DidIReallyWriteThat 2014-10-01 14:44:53

回答

2

如果您希望某些控件關聯並協同工作,則需要創建一個UserControl。這是他們爲什麼這樣做的原因。

  • 創建用戶控制
  • 添加組合框和標籤
  • 設置所需的性能,
  • 線的事件,並添加你的相關的代碼,以反映另一個人的變化。

你完成了創建一個UserControl。現在無論您需要將這個組合框和標籤放在一起,您都將創建一個YourNewUserControl的實例並將其添加到父級(通常爲Form)。

同樣重視gunr2171的評論。 Don't use ArrayList use List<T> instead,原因很明顯。

+0

好的答案,我可能建議父母是一個流佈局面板,因爲它使得它更容易添加控件,而不用擔心添加它們的位置。 – DidIReallyWriteThat 2014-10-01 15:25:17