PDA

View Full Version : مبتدی: دسترسی به بیش از 20 باتون به صورت اندیس



alvandyhamed
یک شنبه 23 مرداد 1390, 16:35 عصر
میخوام به 20 باتون که دارم دسترسی داشته باشم به صورتی که مثلا عدد 5 بتوانم به باتون شماراه 5 دسترسی پیدا کنم

quantomquery
یک شنبه 23 مرداد 1390, 18:33 عصر
همه باتون ها رو توی یه لیست نوع دار از نوع باتن بریز و از ایندکسش استفاده کن

alinaghiha
یک شنبه 23 مرداد 1390, 19:14 عصر
سلام
به نظر من بهتره button ها رو آرایه کنی


Button[] btn=new button[10];

حالا موقعه لود فرم button ها را به آرایه ارتباط بده


btn[0]=button1;
btn[1]=button2;
.
.
.




حالا میتونی با ایندکس دسترسی داشته باشی
موفق باشی

alvandyhamed
دوشنبه 24 مرداد 1390, 06:04 صبح
منم از آرایه استفاده کردم بهتره
بازم ازتون ممنون

r0ot$harp
دوشنبه 24 مرداد 1390, 06:11 صبح
دوست عزیز از FindControl و Cast می تونیم به راحتی استفاده کنید .

باتشکر احسان

alinaghiha
دوشنبه 24 مرداد 1390, 17:30 عصر
آقا احسان عزیز مشه یه کد از findcontrol بذاری
دوست دارم یاد بگیرم

Reza_Yarahmadi
دوشنبه 24 مرداد 1390, 18:37 عصر
مشه یه کد از findcontrol بذاری
if (Controls.Find("button2", true).Length > 0)
{
Button btn = (Button)Controls.Find("button2", true)[0];
}
اگر کنترل مورد نظر توی Container دیگری مثل پنل یا گروپ باکس یا ... نیست میشه از کد زیر هم استفاده کرد
Button btn = (Button)Controls["button2"];

alinaghiha
چهارشنبه 26 مرداد 1390, 20:51 عصر
ممنون از راهنماییتون
منظور از button2 توی کدت چیه

Reza_Yarahmadi
چهارشنبه 26 مرداد 1390, 22:20 عصر
منظور از button2 توی کدت چیه
اسم کنترلی که میخواید بهش دسترسی پیدا کنید.

Salar Ashgi
چهارشنبه 26 مرداد 1390, 22:49 عصر
یک مثال خیلی ساده :


private void button1_Click(object sender, EventArgs e)
{
for (int i = 1; i <= 5; i++)
{
richTextBox1.Text += (this.Controls["textBox" + i.ToString()] as TextBox).Text + "\n";
}
}


73963

mmd2009
پنج شنبه 27 مرداد 1390, 08:18 صبح
با سلام

اینم نظر و کد من فکر کنم مناسب تر باشه برای کاری که شما نیاز دارید :


foreach (TextBox txt in this.Controls.OfType<TextBox>())
{
listBox1.Items.Add(txt.Text);
}

cccccccccc
پنج شنبه 27 مرداد 1390, 20:21 عصر
این کد شما برای مثال قبلی خوبه اما برای سوال اصلی شاید نه

mmd2009
جمعه 28 مرداد 1390, 03:12 صبح
منم منظورم دوست قبلیمون بود. سوال اصلی رو که جوابش رو بهش دادن که.