اگر دنبال مسیج باکس سفارشی در سی شارپ هستید این مطلب می تواند به شما کمک کند. در این مطلب میخواهیم سورس کد یک MessageBox سفارشی رو برای دانلود قرار دهیم. در مورد کدهایی که در این MessageBox استفاده کرده ایم توضیحاتی هم میدهیم تا شما بیشتر با این کدها آشنا شوید. البته در دوره آموزش برنامه نویسی سی شارپ در مورد مسیج باکس اطلاعات مفیدی قرار داده ایم که یکی از خریدار که دیروز بسته رو تهیه کرده است سریع بر اساس آموزش یک MessageBox سفارشی درست کرده و الان میخواهیم آن را برای دانلود قرار دهیم.
مسیج باکس سفارشی در سی شارپ
اقلب برنامه نویسان برای ساختن برنامه هایی که به زبان فارسی هستند در قسمت نمایش یک پیغام به کاربر دچار مشکل میشوند چون باید از MessageBox خود ویژال استودیو استفاده کنند که دارای مشکلاتی از قبیل فارسی نبودن و داشتن گرافیک ساده، خشک و … می باشد که خودتون بهتر میدونید چه جوری هستش. اما در این بخش برای شما سورس یک مسیج باکس سفارشی در سی شارپ و کاملا فارسی با گرافیک عالی رو آماده کردیم که در بخش زیر توضیحاتی در مورد کدهای آن میدهیم. (پس همراه ما باشید تا سورس کد مسیج باکس سفارشی در سی شارپ را به صورت کامل مورد بررسی قرار دهیم.)
بررسی سورس کد مسیج باکس سفارشی در سی شارپ
این بخش enum ها هست که باعث میشه کاربر راحت تر با MessageBox کار کند و در موقع فراخوانی MessageBox کاربردش اصلیش را میبینیم.
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Media; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace MyMessageBox { public partial class Messagebox : Form { public enum MyIcons { Error, Warning, Question, Informtion, Ok, EmojiOk } public enum MyButton { OK, OKCANCEL, YESNO } public enum MyDialogResult { OK,CANCEL,YES,NO }
یک متغیر Static تعریف میکنیم از نوع MyDialogResult و اسمش رو dialog میذاریم.
static MyDialogResult dialog;
در این قسمت از کد یک متد static تعریف کردیم که در واقع یکی از چند قسمت اصلی برنامه هست و چهار ورودی میگیرد که به ترتیب (متن داخل MessageBox است و عنوان MessageBox می باشد. بعدی ها هم دکمه ها و آیکون MessageBox است) و درون آن متد سازنده فرم رو فراخوانی کردیم که پارامتر ها ورودی خودش رو میگیرد و بعد سازنده رو ShowDialog کردیم و بعد به عنوان مقدار خروجی متد dialog رو return قرار دادیم.
public static MyDialogResult Show(string msg,string title="",MyButton button=MyButton.OK,MyIcons icon= MyIcons.Ok) { Messagebox omsg = new Messagebox(msg,title,button,icon); omsg.ShowDialog();
درون سازنده اصلی فرم، button ها رو خاصیت Visibel شون رو false میکنیم تا موقع بلا آمدن فرم همه button ها نمایش داده نشوند.
return dialog; } public Messagebox() { InitializeComponent(); btncancel.Visible = btnno.Visible = btnok.Visible = btnyes.Visible = false; }
در این بخش از کد ما یک سازنده دیگر میسازیم که پارامتر های ورودیش مانند متد Ststic بالاست و درونش متن lblmsg رو برابر قرار میدیم با اولین پارامتر ورودی سازنده یعنی همان msg و متن lbltitle رو برابر قرار میدیم با پارامتر دوم ورود، یعنی همان title و بعد متدهای SetMode و SetButton رو فراخوانی میکنیم و به عنوان پارامتر ورودیشون به ترتیب قرار میدهیم.
public Messagebox(string msg, string title = "", MyButton button = MyButton.OK, MyIcons icon = MyIcons.Ok):this() { lblmsg.Text = msg; lbltitle.Text = title; SetMode(icon); SetButton(button); }
در این قسمت از کد ما یک متد void و با یک پارامتر ورودی از نوع MyIcons می سازیم و درون آن یک switch تعریف می کنیم و برای هر یک از شرط های آن تصویر picicon رو تغییر میدهیم.
void SetIcons(MyIcons icon) { switch (icon) { case MyIcons.Error: picicon.Image = Properties.Resources.Error; break; case MyIcons.Warning: picicon.Image = Properties.Resources.Warning; break; case MyIcons.Question: picicon.Image = Properties.Resources.Question; break; case MyIcons.Informtion: picicon.Image = Properties.Resources.Info; break; case MyIcons.Ok: picicon.Image = Properties.Resources.OK; break; case MyIcons.EmojiOk: picicon.Image = Properties.Resources.EmojeOK; break; } }
در این قسمت از کد ما یک متد void و با یک پارامتر ورودی از نوع MyIcons می سازیم و درون آن یک switch تعریف می کنیم و برای هر یک از شرط های آن یک صوت پخش می کنیم.
void PlayerSound(MyIcons icon) { SoundPlayer oplay; switch (icon) { case MyIcons.Error: oplay = new SoundPlayer(Properties.Resources.sound_Error); break; case MyIcons.Warning: oplay = new SoundPlayer(Properties.Resources.sound_warning); break; case MyIcons.Question: oplay = new SoundPlayer(Properties.Resources.sound_question); break; case MyIcons.Informtion: oplay = new SoundPlayer(Properties.Resources.sound_information); break; case MyIcons.Ok: oplay = new SoundPlayer(Properties.Resources.sound_information); break; case MyIcons.EmojiOk: oplay = new SoundPlayer(Properties.Resources.sound_information); break; default: oplay = new SoundPlayer(); break; } oplay.Play(); }
ما در این متد دو متد قبلی یعنی SetIcons و PlayerSound رو فراخوانی کردیم و به عنوان پارامتر ورودی، پارامتر ورودی متد SetMode رو قرار میدیم.
Void SetMode(MyIcons icon) { SetIcons(icon); PlayerSound(icon); }
در این قسمت از کد ما یک متد void و با یک پارامتر ورودی از نوع MyButton می سازیم و درون آن یک switch تعریف می کنیم و برای هر یک از شرط های آن خاصیت Visible دکمه ها (button) مربوط رو true می کنیم تا بر رو فرم نمایش داده شوند.
void SetButton(MyButton button) { switch (button) { case MyButton.OK: btnok.Visible = true; break; case MyButton.OKCANCEL: btncancel.Visible = btnok.Visible = true; break; case MyButton.YESNO: btnyes.Visible = btnno.Visible = true; break; } }
در این قسمت از کد ما برای رویداد کلیک همه button ها می نویسیم this.close() تا MessageBox بسته شود و برای هر کدوم خاصیت Dialog خاصی در نظر میگیریم که باعث میشه ما بتونیم از button ها در موقع فراخوانی messagebox استفاده کنیم.
private void btnok_Click(object sender, EventArgs e) { dialog = MyDialogResult.OK; this.Close(); } private void btncancel_Click(object sender, EventArgs e) { dialog = MyDialogResult.CANCEL; this.Close(); } private void btnyes_Click(object sender, EventArgs e) { dialog = MyDialogResult.YES; this.Close(); } private void btnno_Click(object sender, EventArgs e) { dialog = MyDialogResult.NO; this.Close(); } } }
نحوه استفاده از فایل dll
برای استفاده از این ابتدا MessageBox باید فایل dll موجود در پوشه دیباگ رو کپی و در پوشه دیباگ پروژه خودتون پیست نماید. بعد بیاید داخل ویژوال استودیو و بعد در پنجره Solution Explorer روی گزینه References کلیک راست کرده و بعد گزینه Add References را انتخاب کرده و در انتها گزینه Browse… رو انتخاب کنید و در پنجره باز شده dll مورد نظر رو انتخاب کرده و بعد رود دکمه Add کلیک کنید و می بینید که مورد نظر به References های شما اضافه میشود.
حالا شما باید NamesSpace MessageBox رو در قسمت using ها اضافه کنید به این شکل :
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using MyMessageBox;
صحبت پایانی
سعی کردیم در این مطلب نحوه ساخت مسیج باکس سفارشی در سی شارپ را آموزش دهیم حتما سورس کد رو هم دانلود کنید تا خودتون تو ویژوال استودیو هم از این مسیج باکس خروجی بگیرید و در پروژه هاتون استفاده کنید.
ویدیو پیش نمایش سورس کد مسیج باکس سفارشی در سی شارپ
سازنده برنامه: محمد مهدی غیبی
ایشون تازه یکی دو روزه بسته آموزش برنامه نویسی سی شارپ از مجموعه سورس ایران تهیه کردند و خیلی سریع وارد فاز برنامه نویسی شدند و خدا رو شکر اولین چیزی که درست کردن مسیج باکس سفارشی در سی شارپ می باشد.
توجه: اگر می خواهید متخصص سی شارپ شوید و نمیدونید از کجا شروع کنید پیشنهاد میکنم دوره مقدماتی آموزش برنامه نویسی سی شارپ رو به صورت رایگان دانلود کنید.