2016-11-22 118 views
0

在我的主窗体中,我有一个文本框即textBoxTotalTotal,我希望所有动态添加的文本框都是我的textBoxTotalTotal中的添加/总和我该怎么做到这一点?
在我的主要形式,我有这样的: textBoxTotalTotal
然后在我的用户控件我有这个从用户控件动态添加文本框的值添加到主窗体

public void textBoxTranspo_TextChanged(object sender, EventArgs e) 
    { 
    int intTranspo = 0, intBoxDaily = 0; 
    if (int.TryParse(textBoxTranspo.Text, out intTranspo) && int.TryParse(textBoxDaily.Text, out intBoxDaily)) 
    textBoxTotalAmount.Text = (intTranspo + intBoxDaily).ToString(); 
    } 

public void textBoxDaily_TextChanged(object sender, EventArgs e) 
     { 
     int intTranspo = 0, intBoxDaily = 0; 
     if (int.TryParse(textBoxTranspo.Text, out intTranspo) && int.TryParse(textBoxDaily.Text, out intBoxDaily)) 
     textBoxTotalAmount.Text = (intTranspo + intBoxDaily).ToString(); 
     } 

请注意,我通过动态按钮添加该用户控制在我喜欢多次的主要形式。所以textBoxTotalTotal应该刚刚添加它们,当一个新的2文本框出现。

回答

0

假设用户控件的母公司是Form1中和用户控制类型的MyUserControl: (你应该设置正确的父,和用户控制型)

MyUserControl[] controls = Form1.Controls.OfType<MyUserControl>().ToArray(); 
int Total = 0; 
for(int i=0;i<controls.Length;i++){ 
    controls[i].Controls.OfType<TextBox>().ToList() 
    .ForEach(txt => Total += int.Parse(txt.Text)); 
} 

如果从用户控件本身做那么:

MyUserControl[] controls = Parent.Controls.OfType<MyUserControl>().ToArray(); 
int Total = 0; 
for(int i=0;i<controls.Length;i++){ 
    controls[i].Controls.OfType<TextBox>().ToList() 
    .ForEach(txt => Total += int.Parse(txt.Text)); 
} 
+0

你好,我如何确定哪一个是UserControl的父级? – Noobster

+0

usercontrol.Parent? – TaW