Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/263.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# 从所有动态生成的UserControl获取textbox的总和_C#_Winforms_Dynamic Usercontrols - Fatal编程技术网

C# 从所有动态生成的UserControl获取textbox的总和

C# 从所有动态生成的UserControl获取textbox的总和,c#,winforms,dynamic-usercontrols,C#,Winforms,Dynamic Usercontrols,我想添加所有动态生成的usercontrol的价格(标签),并将其设置为winform上的标签。我如何才能做到这一点?通过单击winform上的ok按钮 我尝试了这段代码,但它没有添加标签,输出总是0 图为: 这是我的代码: private void add_Click(object sender, EventArgs e) { double g = 0; foreach (Control ctrl in Controls) {

我想添加所有动态生成的usercontrol的价格(标签),并将其设置为winform上的标签。我如何才能做到这一点?通过单击winform上的ok按钮 我尝试了这段代码,但它没有添加标签,输出总是0 图为: 这是我的代码:

 private void add_Click(object sender, EventArgs e)
    {
        double g = 0;
        foreach (Control ctrl in Controls)
        {
            if (ctrl is DynaItems)
            {
                var myCrl = ctrl as DynaItems;
                g += Convert.ToInt32(myCrl.price.Text);
            }
        }
        textBox1.Text = g.ToString();
    }

我认为这可能是因为在转换为Int32时需要一个双精度。尝试此代码,同时检查价格控件的属性文本是否正确

private void add_Click(object sender, EventArgs e)
{
    double g = 0;

    // Controls.OfType will automatically find your DynaItems controls and cast them for you
    foreach (DynaItems dynaItem in Controls.OfType<DynaItems>())
    {
        // Breakpoint here and check the value of dynaItem.price.Text
        g += double.Parse(dynaItem.price.Text);
    }

    textBox1.Text = g.ToString();
}
private void add\u单击(对象发送者,事件参数e)
{
双g=0;
//Controls.OfType将自动查找DynaItems控件并为您强制转换它们
foreach(Controls.OfType()中的DynaItems dynaItem)
{
//在此处设置断点并检查dynaItem.price.Text的值
g+=double.Parse(dynaItem.price.Text);
}
textBox1.Text=g.ToString();
}

在调试中一步一步地运行肯定会帮助您发现代码中的错误假设……我也尝试过这段代码,但它不起作用var g=0;foreach(控件中的控件ctrl){if(ctrl是DynaItems){var myCrl=ctrl作为DynaItems;g+=Convert.ToInt32(myCrl.price.Text);}}textBox1.Text=g.ToString();我们不知道什么是DynaItems。这里几乎没有答案。Dynaitems是我的usercontrol的名称