首页 > 解决方案 > 如何将文本框中的整数值动态添加到 C# 中的 int 数组

问题描述

我想创建一个带有按钮的表单,其中按钮可以创建一组组件(2 个文本框,1 个标签)。我希望将文本框中输入的值存储到一个 int 数组中。

我已经工作了这么远按钮点击事件

 private void button1_Click(object sender, EventArgs e)
    {

        AddNewLabel();
        AddNewTextBox1();
        AddNewTextBox2();
    }

添加文本框

 public System.Windows.Forms.TextBox AddNewTextBox1()
    {
        System.Windows.Forms.TextBox txt1 = new System.Windows.Forms.TextBox();
        this.Controls.Add(txt1);
        txt1.Top = txtBoxCounter * 28;
        txt1.Left = 125;
        string txtName1 = "txtLL" + txtBoxCounter;
        txt1.Name = txtName1;
        string txtValue1 = txt1.Text;
        lowerLimit[txtBoxCounter-1] = Int32.Parse(txtValue1);
        return (txt1);


    }

添加标签

public System.Windows.Forms.Label AddNewLabel()
    {
        System.Windows.Forms.Label lbl = new System.Windows.Forms.Label();
        this.Controls.Add(lbl);
        lbl.Top = lblCounter * 28;
        lbl.Left = 15;
        lbl.Text = "Range" + lblCounter;
        lblCounter = lblCounter + 1;
        return (lbl);
    }

开始调试后 初始形式

按钮点击后 按钮点击后

标签: c#arrayswinforms

解决方案


有几种方法可以做到这一点:您可以将TextBox在集合中创建的对象存储在表单上的实例变量中,或者由于文本框已添加到 中this.Controls,您可以动态地遍历它们。

方法取决于您;这是使用第二种方法的示例:

var total = this.Controls
    .OfType<TextBox>
    .Sum(tb => {
        int val;
        if (int.TryParse(tb.Text, out val)) {
            return val;
        }
        return 0;
    });

注意:您需要导入System.Linq此方法才能编译。


推荐阅读