如何以编程方式每次在c#中单击按钮时添加组合框的新实例
我想创建一个c#windows窗体,如果单击“添加组合框”按钮,系统将在每次单击时创建一个“组合框”实例 每个实例的位置将加上彼此下方5px的经度如何以编程方式每次在c#中单击按钮时添加组合框的新实例,c#,winforms,combobox,C#,Winforms,Combobox,我想创建一个c#windows窗体,如果单击“添加组合框”按钮,系统将在每次单击时创建一个“组合框”实例 每个实例的位置将加上彼此下方5px的经度 如果可能的话,请用一些固定值填充新实例。您可以在单击按钮时执行类似操作(注释在代码中): private void按钮1\u单击(对象发送者,事件参数e) { //创建新组合 ComboBox cbo=新ComboBox(); //用值填充它 cbo.项目。添加(“价值1”); cbo.项目。添加(“价值2”); //设置左位置 cbo左=10; /
如果可能的话,请用一些固定值填充新实例。您可以在单击按钮时执行类似操作(注释在代码中):
private void按钮1\u单击(对象发送者,事件参数e)
{
//创建新组合
ComboBox cbo=新ComboBox();
//用值填充它
cbo.项目。添加(“价值1”);
cbo.项目。添加(“价值2”);
//设置左位置
cbo左=10;
//设置默认顶部位置
int top=5;
//如果此表单包含超过0个组合框,则获取最后一个组合框顶部值并将其增加5。
if(this.Controls.OfType().Count()>0)
top=this.Controls.OfType().Last().top+5;
//将最大值设置为新组合
cbo.Top=Top;
//将其添加到窗体控件集合
this.Controls.Add(cbo);
}
您可以在单击按钮时执行类似操作(注释在代码中):
private void按钮1\u单击(对象发送者,事件参数e)
{
//创建新组合
ComboBox cbo=新ComboBox();
//用值填充它
cbo.项目。添加(“价值1”);
cbo.项目。添加(“价值2”);
//设置左位置
cbo左=10;
//设置默认顶部位置
int top=5;
//如果此表单包含超过0个组合框,则获取最后一个组合框顶部值并将其增加5。
if(this.Controls.OfType().Count()>0)
top=this.Controls.OfType().Last().top+5;
//将最大值设置为新组合
cbo.Top=Top;
//将其添加到窗体控件集合
this.Controls.Add(cbo);
}
虽然答案是正确的,但最好使用FlowLayoutPanel
或TableLayoutPanel
@RezaAghaei您是对的,但很难说OP真正需要什么。这个答案很好地证明了概念,但是OP可能必须根据他/她的需要调整这个答案,而答案是有效的,但是最好使用FlowLayoutPanel
或TableLayoutPanel
@RezaAghaei你是对的,但是很难说OP真正需要什么。这个答案很好地证明了概念,但OP可能需要根据自己的需要调整这个答案
private void button1_Click(object sender, EventArgs e)
{
//create new combo
ComboBox cbo = new ComboBox();
//fill it with values
cbo.Items.Add("value1");
cbo.Items.Add("value2");
//set left location
cbo.Left = 10;
//set default top location
int top = 5;
//if this form contains more then 0 combo boxes, get last combo box Top value and increase it with 5.
if (this.Controls.OfType<ComboBox>().Count() > 0)
top = this.Controls.OfType<ComboBox>().Last().Top + 5;
//set top value to new combo
cbo.Top = top;
//add it to forms control collection
this.Controls.Add(cbo);
}