PDA

View Full Version : دادن مقدار به تکس باکسی که شماره ان از قبل معلوم نیست



negar.rafie
چهارشنبه 14 دی 1390, 20:50 عصر
دوستان ما اگر مثلا می خواهیم به textbox2 یک مقدار بدهیم از کد زیر استفاده می کنیم

textBox1.Text = "12";


حالا اگر معلوم نباشد که در کدام تکس باکس می خواهیم یک مقدار اضافه کنیم از چه کدی استفاده کنیم
یعنی مثلا ما یه متغیر داریم که شماره تکس باکس مورد نظر را از ان می گیرم

ACorvinus
چهارشنبه 14 دی 1390, 21:41 عصر
سلام.
فکر کنم از این کد استفاده کنین جواب میده:

((TextBox)(this.FindControl(String.Format("TextBox{0}", 1))).Text = "Hello";

ببخشید ممکنه یه ایراد Syntax داشته باشه چون VS نداشتم چک کنم.

mohammad272005
چهارشنبه 14 دی 1390, 21:43 عصر
به کد زیر میتونید TexBoxهای موجود در بالاترین لایه فرم رو بگیرید:

private IEnumerable<TextBox> GetTextBoxes()
{
foreach (var control in this.Controls)
if (control is TextBox)
yield return control as TextBox;
}

ولی برای بدست آوردن کل TextBoxها، باید یه تابع Recursive بنویسید:
private IEnumerable<TextBox> GetTextBoxes()
{
var result = new List<TextBox>();
Action<Control> gatherTextBoxes = null;
gatherTextBoxes = delegate(Control ctrl)
{
foreach (Control control in ctrl.Controls)
if (control is TextBox)
result.Add(control as TextBox);
else
gatherTextBoxes(control);
};
gatherTextBoxes(this);
return result.AsEnumerable();
}