C#-为控制思想循环赋值

C#-为控制思想循环赋值,c#,winforms,loops,controls,C#,Winforms,Loops,Controls,我有按数字顺序命名的控件。 我想使用loop为这些控件赋值。 下面的代码是我当前使用的方式 txtSalesInvoiceForm_Qty1.Text = (salesInvoice.ItemQty1 == 0) ? string.Empty : salesInvoice.ItemQty1.ToString(); txtSalesInvoiceForm_Qty2.Text = (salesInvoice.ItemQty2 == 0) ? string.Empty : salesInvoice.I

我有按数字顺序命名的控件。 我想使用loop为这些控件赋值。 下面的代码是我当前使用的方式

txtSalesInvoiceForm_Qty1.Text = (salesInvoice.ItemQty1 == 0) ? string.Empty : salesInvoice.ItemQty1.ToString();
txtSalesInvoiceForm_Qty2.Text = (salesInvoice.ItemQty2 == 0) ? string.Empty : salesInvoice.ItemQty2.ToString();
txtSalesInvoiceForm_Qty3.Text = (salesInvoice.ItemQty3 == 0) ? string.Empty : salesInvoice.ItemQty3.ToString();
txtSalesInvoiceForm_Qty4.Text = (salesInvoice.ItemQty4 == 0) ? string.Empty : salesInvoice.ItemQty4.ToString();
txtSalesInvoiceForm_Qty5.Text = (salesInvoice.ItemQty5 == 0) ? string.Empty : salesInvoice.ItemQty5.ToString();
txtSalesInvoiceForm_Unit1.Text = salesInvoice.Unit1;
txtSalesInvoiceForm_Unit2.Text = salesInvoice.Unit2;
txtSalesInvoiceForm_Unit3.Text = salesInvoice.Unit3;
txtSalesInvoiceForm_Unit4.Text = salesInvoice.Unit4;
txtSalesInvoiceForm_Unit5.Text = salesInvoice.Unit5;
txtSalesInvoiceForm_Particulars1.Text = salesInvoice.Particulars1;
txtSalesInvoiceForm_Particulars2.Text = salesInvoice.Particulars2;
txtSalesInvoiceForm_Particulars3.Text = salesInvoice.Particulars3;
txtSalesInvoiceForm_Particulars4.Text = salesInvoice.Particulars4;
txtSalesInvoiceForm_Particulars5.Text = salesInvoice.Particulars5;
有没有这样的办法

int index = 1;
foreach (SalesInvoiceItem item in salesInvoice.SalesInvoiceItems)
{
    (txtSalesInvoiceForm_Qty + index.ToString()).Text = Value;
    indexer++                        
}

使用一个数组而不是这么多的命名变量,只索引到数组中。

使用一个数组而不是这么多的命名变量,只索引到数组中

Control parent = this.pnlParent; // this must be the immediate parent control

int index = 1;
foreach (SalesInvoiceItem item in salesInvoice.SalesInvoiceItems)
{
    TextBox tb = parent.FindControl( "txtSalesInvoiceForm_Qty" + index++ ) as TextBox;
    tb.Text = Value;       
}
键是
FindControl()
,它搜索父级的直接子级。我个人认为这在大多数情况下都是草率的代码


键是
FindControl()
,它搜索父级的直接子级。我个人认为这在大多数情况下都是草率的代码。

谢谢!这正是我想要的!为什么我不能使用parent.FindControl()?它说Windows.Form.Controls不包含FindControl()的定义。@SiHyungLee-我不知道你在使用Windows窗体(假定为web窗体)。有关类似功能,请参阅。谢谢!这正是我想要的!为什么我不能使用parent.FindControl()?它说Windows.Form.Controls不包含FindControl()的定义。@SiHyungLee-我不知道你在使用Windows窗体(假定为web窗体)。有关类似功能,请参阅。