簡體   English   中英

如何在運行時創建文本框並從這些文本框中獲取值? 在C#中。 凈

[英]How to create textbox at run time and take values from these text box ? in 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;
        }

    }

這應該可以解決您的問題:

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;
    }
  } 
}

在您的方法get_value_Click中,您沒有使用添加到流布局面板中的任何文本框。 與Wolfgang Ziegler的答案類似的方法應該起作用,但是如果您在流布局面板中還有其他控件,則需要檢查“類型”和“名稱”。

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;
        }
    }

這應該做到。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM