在我的主要表单中,我有一个文本框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 :(得分:0)
假设UserControls'Parent是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));
}
如果您是从UserControl本身那样做的话,那么:
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));
}