【问题标题】:how to get dynamic created text box value from panel in c# on button click如何在单击按钮时从 C# 中的面板获取动态创建的文本框值
【发布时间】:2015-09-28 16:35:31
【问题描述】:

我在按钮点击面板内创建动态文本框并存储编号 并想检索其文本并计算该数字的总和我该怎么做?

以下是我的文本框生成代码

        private void btnMaterialAdd_Click(object sender, EventArgs e)

        {
            TextBox[] txtTeamNames = new TextBox[100];
            txtTeamNames[i] = new TextBox();
            string name = "TeamNumber" + i.ToString();
            txtTeamNames[i].Location = new Point(1,  i * 30  );
            txtTeamNames[i].Width = 30;
            txtTeamNames[i].Name = "ID" + i;
            txtTeamNames[i].Visible = true;
            int num = i + 1 ;
            txtTeamNames[i].Text = num.ToString();
            panel1.Controls.Add(txtTeamNames[i]);

        }

如何统计每个文本框的总值并显示?

【问题讨论】:

    标签: c# dynamic panel


    【解决方案1】:

    摆脱 Array 并在 Class Level 使用 List(不是方法中的局部变量):

        private List<TextBox> TextBoxes = new List<TextBox>();
    
        private void btnMaterialAdd_Click(object sender, EventArgs e)
        {
            TextBox tb = new TextBox();
            int i = TextBoxes.Count + 1;
            tb.Location = new Point(1, i * 30);
            tb.Width = 30;
            tb.Name = "ID" + i;
            tb.Text = i.ToString();
            TextBoxes.Add(tb);
            panel1.Controls.Add(tb);
        }
    

    现在您可以遍历该 List 何时获得总数:

        private void btnTotal_Click(object sender, EventArgs e)
        {
            int value;
            int total = 0;
            foreach (TextBox tb in TextBoxes)
            {
                if (int.TryParse(tb.Text, out value))
                {
                    total = total + value;
                }
                else
                {
                    MessageBox.Show(tb.Name + " = " + tb.Text, "Invalid Value");
                }
            }
            MessageBox.Show("total = " + total.ToString());
        }
    

    【讨论】:

      猜你喜欢
      • 2019-09-04
      • 2018-02-16
      • 1970-01-01
      • 2015-08-13
      • 1970-01-01
      • 2017-06-10
      • 2013-10-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多