PDA

View Full Version : آرایه ای از کنترل ها (غیر تکراری) ؟



habedijoo
سه شنبه 07 تیر 1384, 09:19 صبح
با سلام به همه دوستان .

قبلا درباره کنترلهای آرایه ای صحبت شده است .
مثلا در انتهای رویداد کلیک (یا رویداد دیگر) اسم چند کنترل با هم آورده شود سپس در داخل رویداد پس از تشخیص کلید فشرده شده کار مربوط به آن کنترل انجام گردد .

اما ....
من می خواهم تعدادی کنترل را بترتیب شماره گزاری کنم . و نام آنها را در یک آرایه قرار دهم .
(Gate0,Gate1,...Gaten در یک آرایه n+1 عضوی )

بعد در برنامه ، بوسیله یک دستور If شرایطی را تست کنم . بر اساس جواب شرط اندیس آرایه را می گیرم . در نهایت به متدها و رویدادهای شی داخل آن اندیس آرایه دسترسی داشته باشم . ( لازم به ذکر است که من فقط نام اشیا را در آرایه می گزارم . یعنی باید از روی نام شی به خصوصیات و متد های آن دسترسی داشت )

توضیح بیشتر : (یک مثال)
از دستور شرطی اندیس آرایه برگردانده می شود (مثلا n=4) . حال می خواهم یکی از خصوصیات شی درون خانه 4 آرایه که همان Gate3 را مقدار دهی کنم .

در ضمن از آنجا که تعداد اشیا مورد استفاده در برنامه من زیاد است و دستورات مورد نظر من برای همه اشیا تکراری است نمی توانم برای هر شی بصورت جدا دستوراتم را بنویسم . ( تعداد اشیا بیش از 40 تا می شود ) پس باید از حلقه For استفاده کنم .


می خواستم بدانم در VB.NET با چه ترفندی می توان این کار را انجام داد ؟.

با تشکر از همه

بابک زواری
سه شنبه 07 تیر 1384, 23:33 عصر
ببین این لینکها به دردت میخوره ؟؟؟؟

http://www.barnamenevis.org/forum/viewtopic.php?t=9859&start=0
http://www.barnamenevis.org/forum/viewtopic.php?t=7944

habedijoo
چهارشنبه 08 تیر 1384, 12:49 عصر
با سلام به مدیر بخش ( که زحمت می کشید و دلسوزانه جواب می دهید )

ببینید . من خودم یک کنترل ساخته ام . این کنترل هیچ رویدادی ندارد . من می خواهم هنگام اجرای برنامه به صورت پویا تعدادی نا معین از این کنترل ایجاد کنم و نام کنترلها را در یک آرایه بریزم . ( توجه کنید . نام آنها در آرایه قرار می گیرد )
بعد می خواهم خصوصیات شیی را که اندیس آرایه مشخص می کند را عوض کنم . از آنجا که دستورات تغییر خصوصیات زیاد است و تکراری ، می خواهم فقط این دستور یک بار نوشته شود و اندیس آرایه مشخص کند که این تغییرات برای کدام کنترل انجام شود .

با تشکر از شما

coder
شنبه 11 تیر 1384, 10:02 صبح
میتونی یک روال بنویسی که برای یک اندیس ورودی همه ستینگ ها رو انجام بده و بعد برای هر کنترل این روال رو با پاس کردن اندیسش صدا کنی.
ضمنا بر خلاف VB6 برای افزودن رویداد به کنترل ها لازم به ذکر تک تک اونها نیست بلکه دستور
Inherits System.Windows.Forms.UserControl
که در ابتدای ساخت کنترل آورده میشود رویدادها و خواص مشترک کنترلها رو اضافه میکنه.