繁体   English   中英

来自动态添加的已解析文本框的数据

[英]Data from dynamically added parsed textboxes

我正在制作一个简单的计算器,以免自己在工作时必须在基本计算器上累加一堆发票总额(因为我们使用纸质发票)。 我现在只是获得基本功能,我拥有的功能之一是添加额外的文本框,然后尝试将文本框中的所有值添加到小计中。 我遇到的问题(我认为)是在编译程序之前,编译器需要具有文本框ID。 我还要为草率的变量名道歉,直到4AM为止,并且直到我刚使用任何变量时,我都尝试了我可能会想到的所有事情。 我已经尝试了所有迭代(如您所见,以do while语句结束)。

namespace WindowsFormsApp1
{
    public partial class Form1 : Form
    {
        int partboxes = 3;
        int lastY = 83;

        public Form1()
        {
            InitializeComponent();
        }

        private void buttonFinal_Click(object sender, EventArgs e)
        {
            AddParts();
        }

        public double AddParts()
        {
            int i = 1;
            double megavalue = 0;


            do
            {
                double totalsum = double.Parse(("partBox" + i).Text);
                megavalue = totalsum + megavalue;

                i = i + 1;
            } while (i < partboxes);


            string supervalue = megavalue.ToString();
            lblPartsTotal.Text = supervalue;
            return megavalue;

        }

        private void button1_Click(object sender, EventArgs e)
        {
            TextBox partBox = new TextBox();
            partBox.Name = "partBox" + partboxes++;
            partBox.Location = new System.Drawing.Point(12, lastY + 26);
            partBox.Size = new System.Drawing.Size(100, 20);
            // Add the textbox control to the form's control collection
            this.Controls.Add(partBox);
            lastY = lastY + 26;
            partboxes = partboxes++;
        }
    }
}

您可以从Controls属性中按名称获取文本框

var tb = (TextBox)Controls["partBox" + i];

i是文本框号码。

索引器返回一个Control 但是,由于每个控件都具有Text属性,因此可以在不进行强制转换的情况下使用它。

double totalsum = double.Parse(Controls["partBox" + i].Text);

请参见: Control.ControlCollection类

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM