PDA

View Full Version : سوال در مورد دسترسي ترتيبي به كنترلها



بیتافرهی
یک شنبه 23 تیر 1387, 11:20 صبح
سلام
کسی من یه برنامه ای درست کردم که از 8 تا باتن تشکیل شده.میخوام توسط تابعی طبق فرضیات مسئله هر بار به یکی از این باتن ها،توسط تابعی که نوشته ام دسترسی یابم و مثلا text باتنی که من توسط تابع برایش تعیین کردم عوض شود.اما مشکل اینجاست که باتن ها که آرایه نیستند که من بهش بگم هر بار سراغ کدوم برود.
this.controls[i
;کسی
می تونه از طریق استفاده از این فرمول مرا راهنمایی کنه؟

a_mzadeh
یک شنبه 23 تیر 1387, 12:19 عصر
سلام، شما ميتونين باتن ها رو بطور پويا در فرمتون قرار بدين:



private Button[] lstButtons;

private void AddControls()
{
int size = 10, top = 20, left = 20;
this.lstButtons = new Button[size];
for (int i = 0; i < size; i++)
{
this.lstButtons[i] = new Button();
this.lstButtons[i].Text = "text";
this.lstButtons[i].Left = left;
this.lstButtons[i].Top = top + (i * 30);
this.lstButtons[i].Click += new EventHandler(Button_Click);
this.Controls.Add(this.lstButtons[i]);
}
}

void Button_Click(object sender, EventArgs e)
{
// click!
}

private void ChangeText(int i, string str)
{
this.lstButtons[i].Text = str;
}


در ضمن از پارامتر sender در تابع Button_Click ميتونين متوجه بشين كه كدوم يكي از باتن ها كليك شده.
موفق باشين.

mehdi.mousavi
یک شنبه 23 تیر 1387, 12:58 عصر
سلام
کسی من یه برنامه ای درست کردم که از 8 تا باتن تشکیل شده.میخوام توسط تابعی طبق فرضیات مسئله هر بار به یکی از این باتن ها،توسط تابعی که نوشته ام دسترسی یابم و مثلا text باتنی که من توسط تابع برایش تعیین کردم عوض شود.اما مشکل اینجاست که باتن ها که آرایه نیستند که من بهش بگم هر بار سراغ کدوم برود.
this.controls[i
;کسی می تونه از طریق استفاده از این فرمول مرا راهنمایی کنه؟


سلام.
یعنی هر چیزی که آرایه نباشه، نمیشه بهش دسترسی پیدا کرد؟ :گیج:

بیتافرهی
دوشنبه 24 تیر 1387, 07:11 صبح
بهتره سوالم را اینطور مطرح کنم :هدف من از این سوال درست کردن بازی دوز با کامپیوتر است.و مشکل اینجاست که من چطور باید بقیه ی دکمه ها را قبال حرکت بازیکن تغییر بدم طوریکه کامپیوتر نبازه.منظورم اینه که معلوم نیست الان کدوم دکمه باید تغییر کنه.لطفا جوابم را با استفاده از دستور کنترلز بدهید.this.controls[i]

ASKaffash
دوشنبه 24 تیر 1387, 08:00 صبح
سلام
خوب اگر مشکلت با آریه ای کردن کنترلها حل میشود در این مورد استفاده از خاصیت Tag مفید است یعنی اینکه در خاصیت Tag ها مقدار دهی اولیه کن تا شبیه یک آرایه شود مثلا ردیف دوم و سطر سوم از کنترل Tag آن را مثلا قرار بده Tag=2,3 در ضمن اگر به کلاس ها تسلط داری میتوانی یک کلاس با دو ویژگی Row و Col ایجاد کنید و یک شی از این کلاس را درون تک تک خواص Tag ها قرار دهید چون شی قبول میکند