Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从所有动态生成的控件中获取文本的总和_C#_Winforms - Fatal编程技术网

C# 从所有动态生成的控件中获取文本的总和

C# 从所有动态生成的控件中获取文本的总和,c#,winforms,C#,Winforms,我有一个windows窗体,其中有下面列出的控件 面板1 button1=添加新手机 按钮2=正常 单击按钮1时,会添加一个用户控件。您可以添加任意多的用户控件。userControl定义由五个控件组成: 组合框1 组合框2 文本框1 文本框2 textbox3 我想添加所有动态生成的usercontrol控件的textbox3文本,并将其设置为winform上的一个标签。我如何才能做到这一点?单击ok按钮 我试过这个密码 foreach (Control ctrl in panel1.Cont

我有一个windows窗体,其中有下面列出的控件 面板1 button1=添加新手机 按钮2=正常 单击按钮1时,会添加一个用户控件。您可以添加任意多的用户控件。userControl定义由五个控件组成:

组合框1 组合框2 文本框1 文本框2 textbox3

我想添加所有动态生成的usercontrol控件的textbox3文本,并将其设置为winform上的一个标签。我如何才能做到这一点?单击ok按钮 我试过这个密码

foreach (Control ctrl in panel1.Controls)
{
      if (ctrl is UserControl)
      {
           UserControl1 myCrl = ctrl as UserControl1;
           int g;
           // but this doesnt happen an error is coming
           g += Convert.ToInt32(myCrl.textbox3.Text);  
      }
}
如何获取所有动态生成控件文本的总和可能您的“错误”是您在
foreach
循环中声明了
g
,因此实际上没有进行任何总和。此外,您不需要初始化它。将代码更改为:

var g = 0;
foreach (Control ctrl in Controls)
{
    if (ctrl is UserControl1)
    {
        var myCrl = ctrl as UserControl1;
        g += Convert.ToInt32(myCrl.textbox2.Text);
    }
}
//Set your label's text
您的“错误”可能是您在
foreach
循环中声明了
g
,因此实际上没有进行任何求和。此外,您不需要初始化它。将代码更改为:

var g = 0;
foreach (Control ctrl in Controls)
{
    if (ctrl is UserControl1)
    {
        var myCrl = ctrl as UserControl1;
        g += Convert.ToInt32(myCrl.textbox2.Text);
    }
}
//Set your label's text
int和=0;
panel1.Controls.OfType().ToList().ForEach(
x=>
{
TextBox ctl=x.Controls.OfType()。其中(y=>y.Name==“textbox2”).FirstOrDefault();
sum+=(ctl==null?0:(!String.IsNullOrEmpty(ctl.Text.Trim())?Convert.ToInt32(ctl.Text.Trim()):0));
}
);
int sum=0;
panel1.Controls.OfType().ToList().ForEach(
x=>
{
TextBox ctl=x.Controls.OfType()。其中(y=>y.Name==“textbox2”).FirstOrDefault();
sum+=(ctl==null?0:(!String.IsNullOrEmpty(ctl.Text.Trim())?Convert.ToInt32(ctl.Text.Trim()):0));
}
);

错误消息是什么?和“int g”应该给出一个值(很可能是0,即int g=0;)。请向我们显示错误消息。我假设您正在尝试将非数值转换为整数!此外,您应该在
foreach
之外定义
g
,错误消息是什么?和“int g”应该给出一个值(很可能是0,即int g=0;)。请向我们显示错误消息。我假设您正在尝试将非数值转换为整数!此外,你应该在
foreach
之外定义
g
你能在这里帮我吗?你能在这里帮我吗?你能在这里帮我吗
double totalSumValue = 0;
foreach (Control ctrl in Controls)
{
    if (ctrl is UserControl)
    {
        var myCrl = ctrl as UserControl;
        totalSumValue  += Convert.ToInt32(myCrl.textbox3.Text);
    }
}
lblSumValue.text=totalSumValue.toString();