PDA

View Full Version : پرکردن تعدادی TextBox



mohsen_f_b
چهارشنبه 31 تیر 1388, 00:28 صبح
سلام
چطوری میشه با while یه کدی نوشت که توی 100 تا TextBox یک کلمه رو بنویسه؟
textBox ها از 1 شروع تا100 ادامه دارن؟
باتشکر

ehsan248
چهارشنبه 31 تیر 1388, 00:57 صبح
foreach (Control C inthis.Controls)
{
if (C.GetType() == typeof(TextBox))
{
C.Text = "X";
}
}

HDDSoft2001
چهارشنبه 31 تیر 1388, 01:56 صبح
با سلام

اینجوری هم میشه :



foreach (control i in this.Controls)
if ((i as TextBox) != null)
{
(i as TextBox).Text = "X";
}

علیرضا مداح
چهارشنبه 31 تیر 1388, 07:15 صبح
سلام دوست عزیز،
کدهای ارائه شده کامل نیست، چرا که این عمل می بایست به صورت بازگشتی(Recursive) انجام شود، حالتی را در نظر بگیرید که در فرم شما چند Container وجود داشته باشد(به طور مثال چند کنترل Panel یا GroupBox وجود داشته باشد که آن ها نیز دارای تعدادی کنترل فرزند همچون TextBox می باشند) و با کد ارائه شده، تنها سطح اول کنترل های فرم پیمایش می شود و پویش سلسله مراتبی(Hierarchial) کنترل ها انجام نمی گردد،
به نمونه کد زیر توجه کنید:


private void Form1_Load(object sender, EventArgs e)
{
FillTextBoxes(this);
}
void FillTextBoxes(Control parent)
{
foreach (Control ctrl in parent.Controls)
{
if (ctrl is TextBox) ctrl.Text = "Something";
if (ctrl.HasChildren)
FillTextBoxes(ctrl);
}
}

،/