PDA

View Full Version : نحوه مشخص کردن نام تکست باکس با متغیر !!!



mehrdad1991h
جمعه 25 اسفند 1391, 15:18 عصر
سلام
مثلا من در یک حلقه میخوام بگم برای تکست باکس 1 تا 10 یک عملیاتی تکرار بشه
الان اسم تکست باکس ها مثلا اینجوریه
txt1
txt2
txt3
....
الان اینها را چجوری میتونم تو حلقه مشخص کنم
نتونستم اسم تکست باکس را با متغیر تعریف کنم
راهی هست شدنی باشه ؟

اصلا فهمیدین چی میگم ؟
سپاس

reza69
جمعه 25 اسفند 1391, 15:29 عصر
احتمالا باید چنین چیزی بشه

for(int i=0;i<10;i++)
{
txt[i].Text = 0;
}

abbas.oveissi
جمعه 25 اسفند 1391, 16:58 عصر
سلام
مثلا من در یک حلقه میخوام بگم برای تکست باکس 1 تا 10 یک عملیاتی تکرار بشه
الان اسم تکست باکس ها مثلا اینجوریه
txt1
txt2
txt3
....
الان اینها را چجوری میتونم تو حلقه مشخص کنم
نتونستم اسم تکست باکس را با متغیر تعریف کنم
راهی هست شدنی باشه ؟

اصلا فهمیدین چی میگم ؟
سپاس

تا اونجایی که من میدونم توی سی شارپ شبیه vb6.0 نمیشه برای کنترل های رو صفحه مثل دکمه ، تکست باکس و ... اندیس تعریف کرد
اما راهی که من استفاده میکنم اینه که میشه یه حلقه foreach روی تمام کنترل های روی فرم بزنی بعد داخلش یه if بذار که اگه تکست باکس بودن،کاری که میخوای انجام بدن
foreach (Control ctr in this.Controls)
{
if (ctr is TextBox)
{
TextBox temp = (TextBox)ctr;
temp.Text = "a";
}
}

Amir_Developer
جمعه 25 اسفند 1391, 17:30 عصر
سلام
یه راه داری اونم اینه که تکست باکس هاتو به ترتیب توی یه panel قرار بدی و از کدی مثل این استفاده کنی:
for (int i = 0; i < 5; i++)
panel1.Controls[i].Text = i.ToString();
فقط دقت کن که اولین تکست باکست رو با ایندکس صفر میشناسه و اصلن کاری به نام گذاری تو نداره !

mehrdad1991h
جمعه 25 اسفند 1391, 19:50 عصر
تا اونجایی که من میدونم توی سی شارپ شبیه vb6.0 نمیشه برای کنترل های رو صفحه مثل دکمه ، تکست باکس و ... اندیس تعریف کرد
اما راهی که من استفاده میکنم اینه که میشه یه حلقه foreach روی تمام کنترل های روی فرم بزنی بعد داخلش یه if بذار که اگه تکست باکس بودن،کاری که میخوای انجام بدن
foreach (Control ctr in this.Controls)
{
if (ctr is TextBox)
{
TextBox temp = (TextBox)ctr;
temp.Text = "a";
}
}

نفهمیدم چی شد :) :(( !!!

-----
من برا یه سری تکست باکس لازم دارم اینا که اسمشون شبیه به همه اگه بخوام این همه کد بنویسم برای هر کودوم که همون یه بار بشینم اسم همه را بزنم که راحت تره :) یعنی کاری نمیشه کرد راحت تر ؟

erfan_urchin
جمعه 25 اسفند 1391, 20:19 عصر
private void button1_Click(object sender, EventArgs e)
{
for (int i = 1; i <= 10; i++)
Controls["txt" + i].Text = "Hello";
}
شما با این کد داخل تکست باکس 1 تا 10 hello چاپ میکنی
توضیح این کد ها هم این هست که وقتی i=1 بشه میاد داخل txt1 چاپ میکنه hello و وقتی i=2 بشه میاد داخل txt2 چاپ میکنه hello و تا شماره 10 همینجوری پیش میره
موفق باشی

mehrdad1991h
جمعه 25 اسفند 1391, 20:35 عصر
private void button1_Click(object sender, EventArgs e)
{
for (int i = 1; i <= 10; i++)
Controls["txt" + i].Text = "Hello";
}
شما با این کد داخل تکست باکس 1 تا 10 hello چاپ میکنی
توضیح این کد ها هم این هست که وقتی i=1 بشه میاد داخل txt1 چاپ میکنه hello و وقتی i=2 بشه میاد داخل txt2 چاپ میکنه hello و تا شماره 10 همینجوری پیش میره
موفق باشی

e
شد !
توضیح نمیخواد میفهمم چی میشه ولی از Controls بلد نبودم استفاده کنم برا این کار که الان یاد گرفتم
متشکرم