2016-04-29 29 views
-2
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) 
    { 

     ComboBox item = new ComboBox(); 

     item.Name = "subCat"; 
     item.Location = new System.Drawing.Point(100, 71); 
     item.Width = 200; 
     item.Height = 21; 
     item.Text = "Choose SubCategori"; 

     item.Items.Add("test1"); 

     this.Controls.Add(item); 

    } 

現在我需要創建combobox_value_changed事件。如何用c#代碼創建新的組合框?

請幫幫我。 (對不起英文)

+0

可以正常訪問。例如,如果你想讓這個確切的方法處理'item.SelectedIndexChanged',你所要做的就是'item.SelectedIndexChanged + = comboBox1_SelectedIndexChanged;' – AntiTcb

+0

如果這是ASP.NET,則像這樣創建的控件將會是頁面發佈到服務器時丟失。 – niksofteng

回答

0

DynamicCombobox_SelectedIndexChanged成爲您想要調用新創建的組合框的選擇索引更改的方法。那麼你可以用下面的代碼分配給該組合框:

private void DynamicCombobox_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    //Code here 
} 
// creation statements 
item.SelectedIndexChanged += DynamicCombobox_SelectedIndexChanged; 
0

你可以試試下面的內容:

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    var item = new ComboBox 
    { 
     Name = "subCat", 
     Location = new System.Drawing.Point(100, 71), 
     Width = 200, 
     Height = 21, 
     Text = "Choose SubCategori" 
    }; 
    item.Items.Add("test1"); 

    this.Controls.Add(item); 

    // assign previously written method 
    item.SelectedIndexChanged += DynamicallyCreatedCombobox_SelectedIndexChanged; 
    // or 
    // assign created in place delegate 
    item.SelectedIndexChanged += (objSender, eventArgs) => {/* code here */}; 
} 

// event handler for dynamically created combo box 
private void DynamicallyCreatedCombobox_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    // code here 
}