C# 从在许多动态生成的用户控件中定义的文本框中获取值

C# 从在许多动态生成的用户控件中定义的文本框中获取值,c#,user-controls,textbox,dynamically-generated,C#,User Controls,Textbox,Dynamically Generated,我正在用c#开发一个medical store应用程序。在账单生成过程中,将打开以下窗口,该窗口使用动态生成的名为MediRow的用户控件添加项目。 MediRow包含一个数量文本框。当文本框的值更改时,主窗口上的“总量”标签应将所有生成的MediRow控件的文本框中输入的数量相加。我在后台工作程序中添加了以下代码,用于检查所有文本框值并将其相加,但它不起作用 double amt = 0; foreach (Control c in panel1.Controls)

我正在用c#开发一个medical store应用程序。在账单生成过程中,将打开以下窗口,该窗口使用动态生成的名为MediRow的用户控件添加项目。 MediRow包含一个数量文本框。当文本框的值更改时,主窗口上的“总量”标签应将所有生成的MediRow控件的文本框中输入的数量相加。我在后台工作程序中添加了以下代码,用于检查所有文本框值并将其相加,但它不起作用

double amt = 0;
            foreach (Control c in panel1.Controls)
            {
                amt = amt + long.Parse(((MediRow)c).Controls.Find("textBox1",true)[0].Text);
            }
            lblAmt.Text = amt.ToString();

请告诉我如何在运行时动态获取这些文本框值。

我认为您需要通过公共属性公开文本框值

编辑:

class MyCustomItem 
{ 

  public string ItemName 
  { 
    get { return TxtName.Text; } 
  } 

  public string ItemQuantity 
  { 
    get { return TxtQuantity.Text; } 
  }


  // other logic here
}

这是WinForms还是WPF?我认为轮询行不是个好主意。您应该订阅TextBox TextChanged事件。顺便说一下,您可能希望使用NumericUpDown而不是文本框…但是如果是NumericUpDown,如何在添加时获得动态生成的所有NumericUpDowns的值,在你的代码中可以吗?可以,但问题是文本框中的值不是在运行时提取的。你能给我举个例子吗