عوض کردن خاصیت کنترل ها با متد یا کلاس
عوض کردن خاصیت کنترل ها با متد یا کلاس:دوستان سلام من در ساخت نرم افزارها مشکلاتی دارم که مثلا رنگ همه دکمه ها را در رویداد کلیک عوض کنم :
button1_click
pictureBox29.Visible = true;
pictureBox28.Visible = true;
pictureBox27.Visible = true;
pictureBox26.Visible = true;
و... رنگ ها و هزار چیزه دیگه که حجم پروژه من رو خیلی بالا می بره و در کدها سر در گم می شم نمی شه کاری کرد که با فراخوانی یک کلاس یا نوشتن یک متد دکمه های تعریف شده در آن متد به خاصیت مورد نظر تبدیل بشن یا هر چی که تو ذهن شماست ممنونم.
نقل قول: عوض کردن خاصیت کنترل ها با متد یا کلاس
سلام
شما می تونی از ارایه استفاده کنی
مثلا برای picturebox هات ارایه ای از جنس picture box ایجاد کن.
فقط برای بار اول باید تمامی کنترل های مورد نظر رو تو ارایه بریزی و بعد می تونی با استفاده از حلقه ها مثل for روی کنترل های برنامه اعمال مدیریت کنی
نقل قول: عوض کردن خاصیت کنترل ها با متد یا کلاس
راه که زیاده قربونت!!!!
بیا این یکیش:
foreach (Control item in this.Controls)
{
if (item is PictureBox)
{
item.Visible = false;
}
}
خوب این چیکار میکنه؟
لیست تمام کنترل های موجود در فرم رو میگیره ، بعد اگه اون کنترل از نوع pictureBox بود میادو خاصیت visible اونو false میکنه ...
موفق باشید
نقل قول: عوض کردن خاصیت کنترل ها با متد یا کلاس
خب حالا می تونی یه متد بنویسی که تمامی picturebox هات رو نمایان کنه.
کد HTML:
PictureBox[] pic = new PictureBox[100];
public void showallpicturebox()
{
for(i=0;i<=99;i++)
pic[i].visible=true;
}
حالا هرجا خواستی می تونی متدی که نوشتی رو فراخونی کنی
نقل قول: عوض کردن خاصیت کنترل ها با متد یا کلاس
دوستان واقعا ممنونم ولی اگر بخواییم picturebox ها رو مدیریت کنیم چی؟
مثلا یه متد که فقط picturebox های 2 تا 6 با یک دکمه true و picturebox های 8 و 9 و 88 با یک دکمه true ؟
ببینید این درسته؟
کد HTML:
PictureBox[] pic = new PictureBox[4];
pic[0]=PictureBox12
pic[1]=PictureBox8
pic[2]=PictureBox22
pic[3]=PictureBox3
pic[4]=PictureBox4
public void showallpicturebox()
{
for(i=0;i<=4;i++)
pic[i].visible=true;
}
بعد این متد رو حتما باید تو کلاس بنویسیم؟یه توضیح هم درباره این بدید .(از دوستان حرفه ای در سی شارپ تقاضا می شود آی دی yahoo مرا add کنند tooraj.jeegar)
مثلا نگاه کنید این فضای Class1 من هست که از گزینه add item در نوار ابزار آوردم add Class رو فشار دادم:
کد HTML:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Game_Picture
{
class Class1
{
}
}
حالا وقتی توش نوشتیم در فضای نام پروژه اصلی چی بیاریم؟
اینجوری در رویداد کلیک مورد نظر ازش استفاده کنیم؟
کد HTML:
pic.showallpicturebox()
لازم نیست بگید خودم می دونم چقدر داغونم:گریه:
نقل قول: عوض کردن خاصیت کنترل ها با متد یا کلاس
دوست عزیز با سلام
اول بگم خدمتتون سعی کنید در برنامه تون اصول شی گرایی را رعایت کنید دوم شما خیلی سخت میگیری راه های زیادی هست البته راه پویا که هست دوستمون براتون گفتن استفاده از foreach هست
دوست عزیز برای این که موضوع و راه رو سریع و بهینه برید من آدرس رفرنس اصلی گذاشتم تقریبا اونایی که میخواهی رو اونجا هست امیدوارم موفق باشی در ضمن اگه بازم به مشکلی برخوردی و نتیجه نگرفتی با کد خدمتتون عرض میکنم شاد باشید
لینک:http://social.msdn.microsoft.com/Sea...ox%20c%23&ac=1
نقل قول: عوض کردن خاصیت کنترل ها با متد یا کلاس
دوست عزیز شما الان تو کلاس فرم هستی نیازی نیست برای انجام این کار یه کلاس دیگه تعریف کنی
متد ها رو تو همون فرم بنویس
نقل قول: عوض کردن خاصیت کنترل ها با متد یا کلاس
دوستان هیچکس نگفت این درسته یا نه؟
کد HTML:
PictureBox[] pic = new PictureBox[4];
pic[0]=PictureBox12
pic[1]=PictureBox8
pic[2]=PictureBox22
pic[3]=PictureBox3
pic[4]=PictureBox4
public void showallpicturebox()
{
for(i=0;i<=4;i++)
pic[i].visible=true;
}
نقل قول: عوض کردن خاصیت کنترل ها با متد یا کلاس
نقل قول:
نوشته شده توسط
09359779232
دوستان هیچکس نگفت این درسته یا نه؟
کد HTML:
PictureBox[] pic = new PictureBox[4];
pic[0]=PictureBox12
pic[1]=PictureBox8
pic[2]=PictureBox22
pic[3]=PictureBox3
pic[4]=PictureBox4
public void showallpicturebox()
{
for(i=0;i<=4;i++)
pic[i].visible=true;
}
یعنی چی درسه؟!!
الان این 5 تا پیکچرباکس موجود در فرم رو خاصیت visible شون رو true میکنه ... اگرم متوجه نمیشین که چجوری این امکان به وجود میاد ، باید بگم که از اونجایی که کلاس ها (مثه همین PictureBox) از نوع Reference Type هستن این حالت به وجود میاد ...
نقل قول: عوض کردن خاصیت کنترل ها با متد یا کلاس
سلام دوستان من خواص این pictureboxها رو با آرایه ای که در پست بالا درستیش تایید شد نوشتم ولی کجای کدهای کلاس فرم اصلیم بنویسم تا بتونم ازش استفاده کنم هر جا می نویسم پیغام خطا میده؟
نقل قول: عوض کردن خاصیت کنترل ها با متد یا کلاس
احتیاج فوری لطف کنید جواب بدید؟؟؟؟؟؟
نقل قول: عوض کردن خاصیت کنترل ها با متد یا کلاس
نقل قول:
نوشته شده توسط
09359779232
سلام دوستان من خواص این pictureboxها رو با آرایه ای که در پست بالا درستیش تایید شد نوشتم ولی کجای کدهای کلاس فرم اصلیم بنویسم تا بتونم ازش استفاده کنم هر جا می نویسم پیغام خطا میده؟
خط اولو بذارین به عنوان یه فیلد از کلاستون ... بقیشم دیگه بستگی به زمانی که می خواین فراخونی بشه باید تو یه متد باشه!!!!!!
نقل قول: عوض کردن خاصیت کنترل ها با متد یا کلاس
برادر من نمی تونم:گریه:
ببین من چیکار کردم (فضای Class1 من هست که از گزینه add item در نوار ابزار آوردم add Class رو فشار دادم)
بعد داخلش
کد HTML:
//PictureBox[] pic = new PictureBox[4];
//pic[0]=PictureBox12
//pic[1]=PictureBox8
//pic[2]=PictureBox22
//pic[3]=PictureBox3
//pic[4]=PictureBox4
//public void showallpicturebox()
//{
//for(i=0;i<=99;i++)
//pic[i].visible=true;
//}
نوشتم error داد اومدم خط اولش رو نوشتم بعد تو فرم اصلی تو using رفتم نوشتم using class1.pic بازم error داد!!!؟؟
نقل قول: عوض کردن خاصیت کنترل ها با متد یا کلاس
من که درست متوجه نمیشم چیکار کردین!!!!
اگه برنامه ی این کاری که میخواین بکنینو برام بفرستین شاید بتونم براتون درسش کنم!