簡體   English   中英

將用戶控件中動態添加的文本框值添加到主窗體

[英]Add dynamically added textbox value from User Control to main form

在我的主窗體中,我有一個文本框,即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();
        }

請注意,我多次通過主窗體中的按鈕動態添加該用戶控件。 因此,在出現新的2文本框時, textBoxTotalTotal應該將它們加起來。

假設UserControls的父級是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));
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM