PDA

View Full Version : سوال: ایجاد آرایه ای از کنترل ها



V0R73X
یک شنبه 05 دی 1389, 00:12 صبح
باز هم سلام.
من یادمه زمانی که تو vb6 برنامه نویسی میکردم اسم کنترل ها رو یکی میکردم بعد ازم میپرسید که آیا میخواهید آرایه ای از این کنترل ایجاد کنید؟ ولی تو asp.net این کار error میده و امکان پذیر نیست.
من شدیدا به این آرایه نیاز دارم چون میخوام یه رویداد رو واسه همشون تعریف کنم به جای اینکه مثلا برای 100 تا کنترل جداگونه رویداد تعریف کنم!
این کارو چه طوری میشه کرد؟ یا راه دیگه ای هست برای انجام این منظور (تعریف یه رویداد برای همه ی کنترل ها از یک نوع مثلا imagebutton)؟
ممنون از کمکتون...

V0RTEX
چهارشنبه 08 دی 1389, 23:57 عصر
آره از خود vs کمک بگیر تا یک برنامه ای که تو VB6 رو به vb.net کانورت کنی تو برنامه ای که تو VB6 نوشتی از آرایه ای از کنترل ها استفاده کن.
باقیش هم خودت کشف کن...

V0R73X
پنج شنبه 09 دی 1389, 00:41 صبح
ببینید من نمیدونم چه طور اینکار رو بکنم (کانورت برنامه vb6 به vb.net) وگرنه که دیگه مشکلی نداشتم!
آقای VorteX(جالبه که اسم من و شما هم یکیه!) ممنون میشوم اگر روش این کار را به بنده یاد بدهید...:لبخندساده:

V0RTEX
جمعه 10 دی 1389, 21:35 عصر
ساده است فقط برنامه ای که با vb6 نوشتی رو با vs باز کن.باقیش هم خود vs برات انجام میده.راستی این شباهت جالب نیست:افسرده:
.
.
.
.
.
شگفت انگیزه:لبخند:

Kia_MLS
جمعه 10 دی 1389, 21:43 عصر
باز هم سلام.
من یادمه زمانی که تو vb6 برنامه نویسی میکردم اسم کنترل ها رو یکی میکردم بعد ازم میپرسید که آیا میخواهید آرایه ای از این کنترل ایجاد کنید؟ ولی تو asp.net این کار error میده و امکان پذیر نیست.
من شدیدا به این آرایه نیاز دارم چون میخوام یه رویداد رو واسه همشون تعریف کنم به جای اینکه مثلا برای 100 تا کنترل جداگونه رویداد تعریف کنم!
این کارو چه طوری میشه کرد؟ یا راه دیگه ای هست برای انجام این منظور (تعریف یه رویداد برای همه ی کنترل ها از یک نوع مثلا imagebutton)؟
ممنون از کمکتون...

سلام
دوست عزیز، برای یکی از این کنترلها رویداد مورد نظر رو تعریف کن، سپس برای مابقی کنترلها اسم همین تابع رو که برای رویداد کنترل اولی نوشتی، بنویس

ضمنن تمامی رویدادها پارامتری به نام sender دارند که مشخص میکنه چه کنترلی باعث رخ دادن این رویداد شده، برای دسترسی به کنترلی که رویداد مورد نظر رو fire کرده از این پارامتر استفاده کن

موفق باشی

V0RTEX
جمعه 10 دی 1389, 21:57 عصر
سلام
دوست عزیز، برای یکی از این کنترلها رویداد مورد نظر رو تعریف کن، سپس برای مابقی کنترلها اسم همین تابع رو که برای رویداد کنترل اولی نوشتی، بنویس

ضمنن تمامی رویدادها پارامتری به نام sender دارند که مشخص میکنه چه کنترلی باعث رخ دادن این رویداد شده، برای دسترسی به کنترلی که رویداد مورد نظر رو fire کرده از این پارامتر استفاده کن

موفق باشی
دوست گرامی به نظر میرسد تاحاالا با vb6 برنامه ننوشته اید
شما رد نظر بگیرید که ما بخواهیم چنین کاری رو با 1000000 تا کنترل انجام بدیم شما بفرمایید چند خط کد میشه؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ ؟




ولی اوون روشی که من می گم فوقش 10 خط کد می خواهد چه برای 100000 تا چه برای 20 تا.

Kia_MLS
جمعه 10 دی 1389, 22:13 عصر
دوست گرامی به نظر میرسد تاحاالا با vb6 برنامه ننوشته اید
شما رد نظر بگیرید که ما بخواهیم چنین کاری رو با 1000000 تا کنترل انجام بدیم شما بفرمایید چند خط کد میشه؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ ؟




ولی اوون روشی که من می گم فوقش 10 خط کد می خواهد چه برای 100000 تا چه برای 20 تا.

درسته، من هرگز با vb6 برنامه ننوشتم اما متوجه منظورتون شدم
شما نیاز نیست برای هر کنترل یک رویداد بنویسی، همچنین نیاز نیست تمام کنترلهارو دستی انتخاب کنی و رویداد مورد نظر رو به تابعی که نوشتی ست کنی

کاری که نیازه شما انجام بدی ایناست:

1 تابع مینویسی برای n کنترل که رویداد مثلا OnClick رو اجرا کنه
تمامی کنترلهایی که قراره در رویداد OnClick اونها کار مشابه انجام بشه رو با متدFindControl جستجو کن
رویداد OnClick شی جستجو شده در مرحله قبل رو با نام تابع نوشته شده در مرحله 1 ست کن


خوب دوست من همه اینا میشه چند خط کد؟ :متفکر:

موفق باشی

Kia_MLS
جمعه 10 دی 1389, 22:16 عصر
درسته، من هرگز با vb6 برنامه ننوشتم اما متوجه منظورتون شدم
شما نیاز نیست برای هر کنترل یک رویداد بنویسی، همچنین نیاز نیست تمام کنترلهارو دستی انتخاب کنی و رویداد مورد نظر رو به تابعی که نوشتی ست کنی

کاری که نیازه شما انجام بدی ایناست:

1 تابع مینویسی برای n کنترل که رویداد مثلا OnClick رو اجرا کنه
تمامی کنترلهایی که قراره در رویداد OnClick اونها کار مشابه انجام بشه رو با متدFindControl جستجو کن
رویداد OnClick شی جستجو شده در مرحله قبل رو با نام تابع نوشته شده در مرحله 1 ست کن


خوب دوست من همه اینا میشه چند خط کد؟ :متفکر:

موفق باشی

اگه با FindControl مشکل داری میتونی کنترل هاتو یکی یکی انتخاب کنی و از قسمت Event فقط نام تابعی که برای رویداد مثلا OnClick کنترل اولی نوشتی ست کنی، این کار به تعداد خط کدهای شما اضافه نخواهد کرد، فقط وقت شما رو بابت کلیک بر روی کنترل ها خواهد گرفت

V0RTEX
جمعه 10 دی 1389, 22:31 عصر
دیدی که ازت به خاطر این راه خوب تشکر کردم اما این راه یک مشکل داره:

اگه بخواهی یک مجموعه ی n عضوی از m کنترل یکسان رو برای این کار انتخواب کنی چه کار می کنی؟؟

یک چیزی مثل این:http://boulter.com/ttt (http://boulter.com/ttt/)

V0RTEX
جمعه 10 دی 1389, 23:11 عصر
راستی یک مشکل دیگه
گیرم تونستی رویداد ها رو با چند خط کد کنترل کنی اما چه جوری این 1000 تا کنترل رو تو برنامت میزای نکنه می خواهی 1000 بار از toolbox کنترل ها رو drag & drop کنی؟؟

V0R73X
شنبه 11 دی 1389, 07:49 صبح
راستی یک مشکل دیگه
گیرم تونستی رویداد ها رو با چند خط کد کنترل کنی اما چه جوری این 1000 تا کنترل رو تو برنامت میزای نکنه می خواهی 1000 بار از toolbox کنترل ها رو drag & drop کنی؟؟
دیگه زیادی داری ایراد میگیری!
form1.controls.add
به همین سادگی!
راه جفتتون درسته بزارید من امتحان کنم بهتون میگم که چی شد (کدومتون پیروز میشین!!:قهقهه:)

Kia_MLS
شنبه 11 دی 1389, 08:54 صبح
دیدی که ازت به خاطر این راه خوب تشکر کردم اما این راه یک مشکل داره:

اگه بخواهی یک مجموعه ی n عضوی از m کنترل یکسان رو برای این کار انتخواب کنی چه کار می کنی؟؟

یک چیزی مثل این:http://boulter.com/ttt (http://boulter.com/ttt/)



int m = 10;
List<object> FindedObjects = new List<object>();
for (int i = 0; i < this.Controls.Count; i++)
{
var o = this.Controls[i];
if (o is YourObjectType)
{
FindedObjects.Add(o);
if (FindedObjects.Count >= m)
break;

}
}

BlackPawn
شنبه 11 دی 1389, 10:57 صبح
من هم این مساله رو داشتم و دارم !
یک روش برای حل این موضوع ایجاد کنترل ها در زمان اجراست

روش نیست که در زمان طراحی کنترل های آرایه ای تعریف کرد ؟

V0RTEX
شنبه 11 دی 1389, 13:55 عصر
1-مشکل 2 رو جوابشو ندادی
2-با آرایه ای از کنترل ها میشه در زمان اجرا کنترل ست کرد.
مثل اوون لینکی که دادم
بعدش هم اگه شما بخواهید شطرنج online بنویسید باز هم میرید از این روش خودتون میرید
اگه بخواهید از روش خودتون برید برای چک کردن برنده یا بازنده بودن یا تهدید یک مهره توسط یک مهره دیگه باید 200000000000000000000000000000000000000 خط کد بنویسی اگه
برای این مشکل هم راه حل داری دیگه من تسلیمم:بامزه:

BlackPawn
شنبه 11 دی 1389, 14:50 عصر
1-مشکل 2 رو جوابشو ندادی
2-با آرایه ای از کنترل ها میشه در زمان اجرا کنترل ست کرد.
مثل اوون لینکی که دادم
بعدش هم اگه شما بخواهید شطرنج online بنویسید باز هم میرید از این روش خودتون میرید
اگه بخواهید از روش خودتون برید برای چک کردن برنده یا بازنده بودن یا تهدید یک مهره توسط یک مهره دیگه باید 200000000000000000000000000000000000000 خط کد بنویسی اگه
برای این مشکل هم راه حل داری دیگه من تسلیمم:بامزه:


شما متوجه حرف من نشدید ! من خودم سوال کردم که چطور مثل وی وی 6 میشه در زمان طراحی آرایه ای از کنترل ایجاد کرد!!!!!

Kia_MLS
شنبه 11 دی 1389, 15:54 عصر
1-مشکل 2 رو جوابشو ندادی
2-با آرایه ای از کنترل ها میشه در زمان اجرا کنترل ست کرد.
مثل اوون لینکی که دادم
بعدش هم اگه شما بخواهید شطرنج online بنویسید باز هم میرید از این روش خودتون میرید
اگه بخواهید از روش خودتون برید برای چک کردن برنده یا بازنده بودن یا تهدید یک مهره توسط یک مهره دیگه باید 200000000000000000000000000000000000000 خط کد بنویسی اگه
برای این مشکل هم راه حل داری دیگه من تسلیمم:بامزه:

اگه منظورت از مشکل 2 اینه:

راستی یک مشکل دیگه
گیرم تونستی رویداد ها رو با چند خط کد کنترل کنی اما چه جوری این 1000 تا کنترل رو تو برنامت میزای نکنه می خواهی 1000 بار از toolbox کنترل ها رو drag & drop کنی؟؟

جوابش اینه:

دیگه زیادی داری ایراد میگیری!
form1.controls.add
به همین سادگی!

V0RTEX
شنبه 11 دی 1389, 16:28 عصر
1-مشکل 2 رو جوابشو ندادی
2-با آرایه ای از کنترل ها میشه در زمان اجرا کنترل ست کرد.
مثل اوون لینکی که دادم
بعدش هم اگه شما بخواهید شطرنج online بنویسید باز هم میرید از این روش خودتون میرید
اگه بخواهید از روش خودتون برید برای چک کردن برنده یا بازنده بودن یا تهدید یک مهره توسط یک مهره دیگه باید 200000000000000000000000000000000000000 خط کد بنویسی اگه
برای این مشکل هم راه حل داری دیگه من تسلیمم:بامزه:

مشکل 2 این چی؟

V0RTEX
شنبه 11 دی 1389, 16:31 عصر
شما متوجه حرف من نشدید ! من خودم سوال کردم که چطور مثل وی وی 6 میشه در زمان طراحی آرایه ای از کنترل ایجاد کرد!!!!!

برو چند تا پست قبل رو بخون می فهمی.
تنها راه ایجاد آرایه ای از کنترل ها است
اگه vb6 بلدی برنامه ی مورد نظرتو بنویس بعد هم با Visual studio بازش کن
خودت متوجه می شی.

V0R73X
یک شنبه 12 دی 1389, 07:07 صبح
1-
اگه بخواهید از روش خودتون برید برای چک کردن برنده یا بازنده بودن یا تهدید یک مهره توسط یک مهره دیگه باید 200000000000000000000000000000000000000 خط کد بنویسی اگه
برای این مشکل هم راه حل داری دیگه من تسلیمم:بامزه:
تو روش شما هم همین مشکل وجود داره!
ضمنا من که نمیخوام شطرنج آنلاین طراحی کنم!

V0RTEX
دوشنبه 13 دی 1389, 14:38 عصر
اون پشیمون شد حالا تو گیر دادی؟؟