如何在运行时创建文本框并从这些文本框中获取值?在C#中。净

时间:2014-05-21 13:39:15

标签: c# .net

我需要您的帮助,在运行时制作文本框并从用户输入的这些文本框中获取值。我有两个按钮和一个rich_text_box,当用户点击一个按钮时,它会创建3个文本框,然后用户点击其他按钮,它应该从文本框中获取值以及如何在富文本框中。

这是我用来创建动态文本框的代码

private void create_textbox_Click(object sender, EventArgs e)
    {
       flowLayoutPanel1.Controls.Clear();
        for(i=1;i<=3;i++)
        {
            TextBox text = new TextBox();
            text.Name = "Text Box" + i.ToString();
            //text.Text = "Text Box " + i.ToString();
            flowLayoutPanel1.Controls.Add(text);


        }
    }

这个代码我用来从新创建的文本框中获取值并显示在富文本框中。

private void get_value_Click(object sender, EventArgs e)
    {
     TextBox text = new TextBox();
        for (i = 1; i <= 3; i++)
        {
            string value = text.Text + i.ToString();
            richTextBox1.SelectedText  = "\r\n" + value;
        }

    }

3 个答案:

答案 0 :(得分:0)

这可以解决您的问题:

private void get_value_Click(object sender, EventArgs e)
{
  for (var c in flowLayoutPanel1.Controls)
  {
    var t = c as TextBox;
    if (t != null)
    {
      richTextBox1.SelectedText  = "\r\n" + t.Text;
    }
  } 
}

答案 1 :(得分:0)

在您的方法get_value_Click中,您没有使用添加到流布局面板的任何文本框。类似于Wolfgang Ziegler的答案应该有效,但是如果您在流程布局面板中有其他控件,则需要检查类型和名称。

答案 2 :(得分:-1)

private void get_value_Click(object sender, EventArgs e)
    {
        for (i = 1; i <= 3; i++)
        {
            string value = this.flowLayoutPanel1.Controls["Text Box" + i].Text;
            richTextBox1.SelectedText  = "\r\n" + value;
        }
    }

应该这样做。