2011-07-20 179 views
1

我是新来的Visual Studio 2010 C#,我正在创建一个应用程序,用户将选择文本框的数量将显示在窗体中。例如,如果用户自动选择“2”,则会在表格中显示2个框。在C#中创建动态组合框

这是我想创建的截图。

Select number of textboxes to be shown

The output when the user select 2

回答

3

我想你需要知道的是动态创建的控制什么。 要做到你想要的这里,你需要:

  • 创建一个控制
  • 添加控制,形成
  • 设置控制位置,大小和其他任何你需要

它会去的东西像这样:

Texbox texbox = new Textbox(); 
Controls.Add(textbox); 
textbox.Top = 20; 
textbox.Left = 200; 
textbox.Width = 200; 
textbox.Name = "textbox1"; 

因此,你还有什么可以做的,你应该重新在循环中进行泥炭步骤,并计算每个文本框的位置,使其不堆积。

+0

谢谢!它确实帮助了我。顺便说一下,我可以设置文本框的位置和大小吗? – sean

+0

是的,当然。位置是通过更改顶部和左侧属性在上面的示例中设置的(抱歉让您困惑,我知道还有位置属性)。大小随宽度和高度属性而变化,但对于文本框高度没有多大意义,除非将其更改为多行文本框或更改字体。 –

+0

我可以为在组合框中选择后创建的文本框设置文本框名称吗?这样它的值将被存储在数据库中。 – sean

1
comboBox1_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    int i = 0; 
    int y = 0; 
    while (i < int.Parse(comboBox1.SelectedItem.ToString())) 
    { 
     System.Windows.Forms.TextBox tt = new System.Windows.Forms.TextBox(); 
     y = y + 30; 
     tt.Location = new System.Drawing.Point(0, y); 
     this.Controls.Add(tt); 
     i++; 
    } 
} 

希望这有助于