ساخت برنامه ویرایشگر فارسی-بخش اول
جلسات دوره
11
مدرس:
مهدی احمدی
از سال 1380 برنامه نویسی را شروع کرده و از سال 90 در این زمینه تدریس میکنم .با زبانهای سی پلاس پلاس ، سی ،پاسکال ،VB ، سی شارپ ،اسمبلی، جاوا و .... کار کرده و آنها را تدریس کرده ام.هم اکنون نیز مشغول تدریس در دانشگاه هستم و مدتی است با سایت درسمن همکاری میکنم مشاهده رزومه
ساخت برنامه ویرایشگر فارسی-بخش اول
در این جلسه قصد داریم با ساخت یک برنامه ویرایشگر فارسی چیز هایی را که در این فصل یاد گرفته ایم را تمرین کنیم.
برنامه ای که میخواهیم درست کنیم برنامه ای همانند notpad میباشد که میتوانیم در آن متن بنویسیم فایل متنی باز کنیم و کپی کنیم کات کنیم ....
برای این کار یک پروژه جدید باز میکنیم . در ابتدا ظاهر برنامه را درست میکنیم که میخواهیم همانند تصویر پایین باشد البته شما کاربران گرامی میتواند به دلخواه خود ظاهر این برنامه را درست کنید.
برنامه ای که میخواهیم درست کنیم برنامه ای همانند notpad میباشد که میتوانیم در آن متن بنویسیم فایل متنی باز کنیم و کپی کنیم کات کنیم ....
برای این کار یک پروژه جدید باز میکنیم . در ابتدا ظاهر برنامه را درست میکنیم که میخواهیم همانند تصویر پایین باشد البته شما کاربران گرامی میتواند به دلخواه خود ظاهر این برنامه را درست کنید.
برنامه ما دارای یک منو با سه گزینه است که هر کدام از این گرینه ها دارای یک سری زیر شاخه به صورت زیر هستند.
• پرونده
1. فایل جدید
2. باز کردن...
3. ذخیره
4. ذخیره جدید
5. خروج
• ویرایش
1. بازگشت به عقب
2. کپی
3. برش
4. جایگزینی
5. حذف
6. انتخاب همه متن
• قالب بندی
1. فونت
2. رنگ صفحه
3. رنگ متن
4. شکست متن
یک textbox به نام txtmatn با خاصیت تمام صفحه در زیر منوها قرار میدهیم که اگر کاربر صفحه form را بزرگ کادر متن textbox هم بزرگ شود در ادامه خاصیت اسکرول و خاصیت right to left کارد متن را نیز فعال میکنیم.
قالب بندی_فونت:
اگر در کادر متن(textbox) متنی وجود داشته باشد، کاربر میتواند از منوی قالب بندی گزینه فونت را انتخاب کند تا تغییرات دلخواه خود را بر روی نوع فونت ، اندازه قلم و... اعمال کند.
برای این کار ابتدا به Form خود یک Font Dialog اضافه میکنیم و از منوی قالب بندی بر روی گزینه فونت کلیک کرده تا رویداد پیش فرض ،برای کد نویسی فعال کند.
کد نویسی ما به این صورت خواهد بود که اگر کاربر دکمه ok را کلیک کرد Font Dialog به کاربر نمایش داده شود و تغییرات اعمال شود.
private void fontToolStripMenuItem_Click(object sender, EventArgs e)
{
if (fontDialog1.ShowDialog() == DialogResult.OK)
{
txtmatn.Font = fontDialog1.Font;
}
}
قالب بندی_رنگ متن:
رنگ متن دومین گزینه از قالب بندی است و کاربر با این گزینه میتواند رنگ متن دلخواه خود را انتخاب کند.
به Form یک Color Dialog اضافه میکنیم و آن را به کاربر نمایش میدهیم و رنگی که کاربر انتخاب کرده بر روی textbox.forecolor اعمال میشود.
رنگ متن دومین گزینه از قالب بندی است و کاربر با این گزینه میتواند رنگ متن دلخواه خود را انتخاب کند.
به Form یک Color Dialog اضافه میکنیم و آن را به کاربر نمایش میدهیم و رنگی که کاربر انتخاب کرده بر روی textbox.forecolor اعمال میشود.
private void رنگمتنToolStripMenuItem_Click(object sender, EventArgs e)
{
if (colorDialog1.ShowDialog() == DialogResult.OK)
{
txtmatn.ForeColor = colorDialog1.Color;
}
}
قالب بندی_رنگ صفحه:
گزینه بعدی رنگ صفحه است که کاربر میتواند رنگ پس زمینه کادر متن را تغییر دهد و برای این کار از Color Dialog که قبلا اضافه کردید، استفاده کنید.
گزینه بعدی رنگ صفحه است که کاربر میتواند رنگ پس زمینه کادر متن را تغییر دهد و برای این کار از Color Dialog که قبلا اضافه کردید، استفاده کنید.
private void رنگصفحهToolStripMenuItem_Click(object sender, EventArgs e)
{
if (colorDialog1.ShowDialog() == DialogResult.OK)
{
txtmatn.BackColor = colorDialog1.Color;
}
}
قالب بندی_شکست متن:
کادر متن خاصیتی به نام Wordwrap دارد که اگر آن را true کنیم سبب میشود که زمانی کاربر در نوشتن متن و به اخر فرم رسید به خط پایین انتقال داده شود. فعال میشود
پس باید کدی نوشت که اگرTrue == Wordwrap آن را False کند و اگر False == Wordwrap آن را True کند.
کادر متن خاصیتی به نام Wordwrap دارد که اگر آن را true کنیم سبب میشود که زمانی کاربر در نوشتن متن و به اخر فرم رسید به خط پایین انتقال داده شود. فعال میشود
پس باید کدی نوشت که اگرTrue == Wordwrap آن را False کند و اگر False == Wordwrap آن را True کند.
private void شکستنمتنToolStripMenuItem_Click(object sender, EventArgs e)
{
if (txtmatn.WordWrap == true)
{
txtmatn.WordWrap = false;
}
else
{
txtmatn.WordWrap = true;
}
}
ویرایش_بازگشت به عقب:
بازگشت به عقب که همان undo است که آخرین کاری که بر روی کادر متن انجام شده برای ما باز میگرداند. برای این کار کدی که ما باید بنویسیم از منوی ویرایش بر روی گزینه بازگشت به عقب کلیک میکنیم تا رویداد پیش فرض آن فعال شود.
بازگشت به عقب که همان undo است که آخرین کاری که بر روی کادر متن انجام شده برای ما باز میگرداند. برای این کار کدی که ما باید بنویسیم از منوی ویرایش بر روی گزینه بازگشت به عقب کلیک میکنیم تا رویداد پیش فرض آن فعال شود.
private void بازگشتبهعقبToolStripMenuItem_Click(object sender, EventArgs e)
{
txtmatn.Undo();
}
ویرایش_کپی :
Textbox دارای متدی از به نام Copy() است، که قسمتی از متن انتخاب شده را در کلیب بورد ذخیره میکند که ما میتوانیم بعدا آن را جایگزین(Paste)کنیم.
Textbox دارای متدی از به نام Copy() است، که قسمتی از متن انتخاب شده را در کلیب بورد ذخیره میکند که ما میتوانیم بعدا آن را جایگزین(Paste)کنیم.
private void کپیToolStripMenuItem_Click(object sender, EventArgs e)
{
txtmatn.Copy();
}
ویرایش_جایگزینی :
Textbox متد دیگری برای جایگزین کردن به نام paste() دارد که متن ذخیره شده در کلیب بورد را در جایی که اشارهگر موس قرار دارد جایگزین میکند.
Textbox متد دیگری برای جایگزین کردن به نام paste() دارد که متن ذخیره شده در کلیب بورد را در جایی که اشارهگر موس قرار دارد جایگزین میکند.
private void جایگزینToolStripMenuItem_Click(object sender, EventArgs e)
{
txtmatn.Paste();
}
ویرایش_ برش :
گزینه بعدی برش است که از متد textbox.cut() استفاده میکنیم.که متن انتخاب شده را به کلیب بورد انتقال میدهد.
گزینه بعدی برش است که از متد textbox.cut() استفاده میکنیم.که متن انتخاب شده را به کلیب بورد انتقال میدهد.
private void برشToolStripMenuItem_Click(object sender, EventArgs e)
{
txtmatn.Cut();
}
ویرایش_ حذف :
برای گزینه حذف در کادر متن میتوان کدی نوشت که بعد از کلیک بر روی گزینه حذف، متن انتخاب شده برابر با متن خالی شود.
private void حذفToolStripMenuItem_Click(object sender, EventArgs e)
{
txtmatn.SelectedText = "";
}
ویرایش_ انتخاب همه :
برای انتخاب همه در کادر متن از متد Selectall() در Textbox استفاده میکنیم.
private void انتخابهمهToolStripMenuItem_Click(object sender, EventArgs e)
{
txtmatn.SelectAll();
}
نظر شما در تصمیم دیگران اثرگذار است.
لطفا برای همراهان درسمن و بهتر شدن دوره نظر خود را بنویسید.