PDA

View Full Version : سوال: ایجاد کلاس برای Messagebox



voice.of.silence
سه شنبه 18 مهر 1391, 09:50 صبح
سلام دوستان:
من یک برنامه را طراحی می کنم که حدود 14 نوع Messagebox دارد و می خوام که همه ی این ها رو در قالب یک کلاس قرار دهم و از هرکدام در جای مناسب استفاده کنم.
خوشحال می شم اگه بتوید مرا در ایجاد این کلاس راهنمایی کنید.
با سپاس.
Voice of Silence

mohsen_popo
سه شنبه 18 مهر 1391, 10:12 صبح
همه 14 تا رو بزار داخل یه namespase بعد به ازای هر 14 تا یه تابع درست کن........

morteza271
سه شنبه 18 مهر 1391, 10:12 صبح
به نظر من شما یه کلاس تعریف کنید مثلا با نام MyMessageBox
بعد داخل کلاس بک تابع بنویسید با نام مثلا Show()
و از این تابع را بر حسب نیاز دوباره تعریف کنید.
مطابق با کلاسی که واستون میذارم :
93747

البته شاید منظورتون چیز دیگه ای باشه ولی من اینطوری متوجه شدم.

voice.of.silence
سه شنبه 18 مهر 1391, 12:01 عصر
دوست من ، من این کلاس را تعریف کردم اما نتونستم که از آن در فرم استفاده کنم. ممنون می شم اگه کد فرم رو هم برام بزاری.

morteza271
سه شنبه 18 مهر 1391, 12:09 عصر
طریقه ی استفاده که خیلی راحته!
اینطوری :
MyMessage.Show("Hello morteza");
MyMessage.Show("Hello morteza", "morteza");

RIG000
سه شنبه 18 مهر 1391, 12:44 عصر
فکر میکنم شما نتونستی کلاستو بیاری تو برنامه . public static بودن کلاس و توابع خودتو چک کن.

veniz2008
سه شنبه 18 مهر 1391, 12:54 عصر
کلاس بصورت استاتیک تعریف شده واسه همین نیازی به new کردن نیست و همونطور که troski مثال زدن میتونی استفاده کنید. فقط در مثال دوم یه اشتباه چاپی هست که با اجازه جناب troski تصحیح میکنم.

MyMessage.Show("Hello morteza, morteza");
چون متد تعریف شده فقط یک پارامتر ورودی که از نوع رشته هست می پذیرد.
موفق باشید.

morteza271
سه شنبه 18 مهر 1391, 13:14 عصر
نه دوست عزیز اشتباه چاپی نیست.
اون مثال دوم درسته.
اگه کلاسی که گذاشتم رو نگاه کنید تابع Show دوبار تعریف شده یا همون اوررایت شده! که در نوع دوم تابع دو تا ورودی میگیره ولی تابع اول یه ورودی میگیره!
من برای هر دو تابع مثال زدم تا دوستمون متوجه بشن!
به خاطر توجهتون ممنون ولی بیشتر دقت کنید تا دوستان به اشتباه نیفتند.
با تشکر

voice.of.silence
سه شنبه 18 مهر 1391, 15:23 عصر
از حسن نظرتان ممنونم اما مثل اینکه نتوانسته ام که منظورم را خوب بیان کنم.
من می خوام که تمام پیامها رو آماده داشته باشم و فقط در برنامه فراخونی کنم و با استفاده از این روش از نوشتن messagebox های تکراری فرار کنم.
با سپاس.
Voice of Silence

morteza271
سه شنبه 18 مهر 1391, 16:43 عصر
اینکه خیلی راحت تره دوست عزیز.
یه کلاس تعریف کن و داخلش تابع زیر رو بنویس :
public static void Show(int MessageIndex)
{
string Message = "";
switch (MessageIndex)
{
case 1:
Message = "پیام شماره 1";
break;
case 2:
Message = "پیام شماره 2";
break;
case 3:
Message = "پیام شماره 3";
break;
}

MessageBox.Show(Message);
}

بعد برای فراخوانی هم کافیه که کد زیر رو بنویسید :
MyMessage.Show(1);

فقط کافیه به جای 1 شماره پیام مورد نظرتون رو بهش پاس بدین.
موفق باشید

voice.of.silence
سه شنبه 18 مهر 1391, 21:47 عصر
اینکه خیلی راحت تره دوست عزیز.
یه کلاس تعریف کن و داخلش تابع زیر رو بنویس :
public static void Show(int MessageIndex)
{
string Message = "";
switch (MessageIndex)
{
case 1:
Message = "پیام شماره 1";
break;
case 2:
Message = "پیام شماره 2";
break;
case 3:
Message = "پیام شماره 3";
break;
}

MessageBox.Show(Message);
}

بعد برای فراخوانی هم کافیه که کد زیر رو بنویسید :
MyMessage.Show(1);

فقط کافیه به جای 1 شماره پیام مورد نظرتون رو بهش پاس بدین.
موفق باشید

ممنونم دوست من، بالاخره مشکلم حل شد. اگه ممکن هست لطفا در مورد کاربرد کلاس بالا که قرار داده ای کمی توضیح بده. زیرا من کاربرد اصلی آن را متوجه نشدم و می خوام در مورد آن بیشتر بدانم شاید فردا لازم بشه در برنامه های دیگر.
با سپاس.
Voice of Silence