2016-04-29 71 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 
}