شما می توانید با عضویت در انجمن پرسش و پاسخ درسمن هرگونه سوالی دارید را مطرح کنید


ساخت برنامه ویرایشگر فارسی-بخش دوم


ساخت برنامه ویرایشگر فارسی-بخش دوم
برای دانلود و دیدن آنلاین این درس نیاز است وارد سایت شوید. در صورت نداشتن حساب کاربری عضو شوید.

ساخت برنامه ویرایشگر فارسی-بخش دوم
 
در جلسه قبل ظاهر برنامه را ساختیم و کد های مربوط به گزینه های قالب بندی و ویرایش نوشته شدند. در این جلسه میخواهیم کد های مربوط به گزینه‌ی پرونده را بنویسیم .

پرونده_خروج:
کد این گزینه Exit()هست که در جلسات قبل گفته شده است.
private void خروجToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }
 
پرونده_ذخیره جدید:
ذخیره جدید به این معنی که اگر قبلا فایل ذخیره شده بود یک فایل جدید ساخته شود.
ابتدا یک Save File Dialog به Form اضافه میکنیم و به قسمت کد نویسی مربوط به ذخیره جدید میرویم.
Save File Dialog را به کاربر نمایش میدهیم و اگر ok کرد متن موجود در کادر متن را در جایی که کاربر انتخاب کرده ذخیره شود که از کلاس File متد Writealltext() استفاده میکنیم.
این متد دو پارامتر از ما میگیرد،اول مسیر ذخیره سازی و دیگری متنی که قرار است نوشته شود.
مسیر ذخیره سازی را از  savefiledialog میگیرم.
در پارامتر دوم بجای  متنی که قرار است ذخیره شود، txtmatn.text قرار میدهیم تا هر متنی که در کادر متن قرار داشت ذخیره کند.

private void فایلجدیدToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (saveFileDialog1.ShowDialog() == DialogResult.OK)
            { 
                System.IO.File.WriteAllText(saveFileDialog1.FileName,txtmatn.Text);
            }
        
 
در برنامه لازم داریم که  نام فایلمان را هم بدانیم چرا که بعدا میخواهیم کد ذخیره  کردن فایل را هم بنویسیم و باید بدانیم ،متنی که وجود دارد روی کدام فایل باید ذخیره شود پس باید یک متغییر داشته باشیم که نام فایلمان در آنجا ذخیره کنیم، و یک متغییر از نوع متنی به اسم filename درست میکنم که در ابتدا هیچ مقداری  نداشته باشد.
توجه داشته باشد که این متغییر‌ها را  بعد از class form1 قرار دهید و درون هیچ متد دیگری قرار نگیرد.
public partial class Form1 : Form
    {
        string filename = "";
بعد از اینکه  متغییر را تعریف کردیم آن را مقدار دهی میکنیم.
private void بازکردن ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (saveFileDialog1.ShowDialog() == DialogResult.OK)
            {
                System.IO.File.WriteAllText(saveFileDialog1.FileName, txtmatn.Text);
                filename = saveFileDialog1.FileName;
            }
        }
به یک متغییر دیگر از نوع bool به نام seved با مقدار   true همانند متغییر بالا تعریف میکنیم.
public partial class Form1: Form
    {
        string filename = "";
        bool seved = true;
و در رویداد فایل جدید هم مقدار seved را true قرار دهیم.برای اینکه بدانیم تغییراتی که انجام داده‌ایم ذخیره شده‌اند.
private void فایلجدیدToolStripMenuItem_Click(object sender,EventArgs e)
        {
            if (saveFileDialog1.ShowDialog() == DialogResult.OK)
            {
                System.IO.File.WriteAllText(saveFileDialog1.FileName,txtmatn.Text);
                filename = saveFileDialog1.FileName;
                seved = true;
            }
        }
 
پرونده_ذخیره:
ذخیره به این صورت عمل میکند که وقتی ما در زمان اجرا روی دکمه ذخیره کلیک میکنیم باید این متن که در کادر متن هست در  فایلی که الان باز هست ذخیره شود. اگر قبلا ذخیره نشده ذخیره را  کلیک کردم باید یک آدرس و نام جدید از کاربر بگیرد و اگر قبلا این فایل ذخیره شده بر روی آن فایل ذخیره کند.
برای این کار میتوانیم از متغییر filename که در که در رویداد ذخیره جدید تعریف کردیم استفاده کنیم
به این صورت که اگر filename مقدار خالی داشته باشد یعنی اگر کاربر در ابتدای برنامه باشد  از کاربر آدرس ونام فایل را گرفته شود ولی اگر filename دارای مقدار باشد این فایل قبلا ذخیره شده و باید بر روی همان دوباره ذخیره کند.
در form بر روی ذخیره کلیک میکنیم و به قسمت کد نویسی می‌رویم.
یک شرط قرار میدهیم که filename برابر خالی است یا خیر ،اگر خالی بود پنجره ذخیره را به کاربر نمایش می دهد.
private void ذخیرهToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (filename == "")
            {
                if (saveFileDialog1.ShowDialog() == DialogResult.OK)
                {
                    System.IO.File.WriteAllText(saveFileDialog1.FileName, txtmatn.Text);
                    filename - saveFileDialog1.FileName;
                    saved = true;
                }
            }
        }
اگر فایل ما قبلا ذخیره شده باشد این فایل را بر روی فایل خودش ذخیره کند.
            else
            {
                System.IO.File.WriteAllText(filename, txtmatn.Text);
                saved = true;
            }
        }
 
پرونده_بازکردن:
با این گزینه میتوانیم فایل ‌هایی را که قبلا ذخیره کردیم را باز کنیم و متن آن فایل را در این کادر متن به کاربر نمایش دهیم.
به رویداد پیش فرض گزینه باز کردن میرویم.
برای بازکردن، ابتدا باید بدانیم که متن داخل textbox   قبلا ذخیره شده است یا خیر اگر ذخیره نشده از کاربر بپرسیم که آیا  تغییرات را ذخیره کند یا خیر، اگر کاربر تایید کرد تغییرات فعلی را ذخیره کند و یک آدرس جدید از کاربر بگیرید و آن فایل را باز کند و را در این کادر متن نمایش دهید.
private void بازکردنToolStripMenuItem_Click(object sender, EventArgs e)
     {
         if (saved == false)
         {
             DialogResult dr = new DialogResult();
             dr = MessageBox.Show("آیا میخواهید ذخیره کنید.", "اخطار", MessageBox.YesNoCancel);
             if (dr == DialogResult.Yes)
             {
                 if (filename == "")
                 {
                     if (saveFileDialog1.ShowDialog() == DialogResult.OK)
                     {
                      System.IO.File.WriteAllText(saveFileDialog1.FileName,txtmatn.Text);
                      filename = saveFileDialog1.FileName;
                      saved = true;
                     }   
                 }
                 else
                 {
                     System.IO.File.WriteAllText(filename, txtmatn.Text);
                     
                     saved = true;
                 }
             }
          }
اگر که کاربرNo را کلیک کرد فقط باید کد باز کردن فایل را به کاربر نمایش دهیم.
if (dr == DialogResult.No)
          {
                   if (openFileDialog1.ShowDialog() == DialogResult.OK)
                   {
                    txtmatn.Text = System.IO.File.ReadAllText(openFileDialog1.FileName);
                    filename = openFileDialog1.FileName;
                    saved = true;
                   }
                   else
                   { 
                    if (openFileDialog1.ShowDialog() == DialogResult.OK)
                     {
                     txtmatn.Text = System.IO.File.ReadAllText(openFileDialog1.FileName);
                     filename = openFileDialog1.FileName;
                     saved = true;
                 }

کد هایی که در بالا نوشته شد برای  حالتی بود که فایل ما ذخیره نشده باشد ولی اگر فایل ما ذخیره شده باشد فقط باید فایل ما باز شود.
else
           {
               if (openFileDialog1.ShowDialog() == DialogResult.OK)
               {
                   txtmatn.Text = System.IO.File.ReadAllText(openFileDialog1.FileName);
                   filename = openFileDialog1.FileName;
                   saved = true;
               }
                
                
           }
        }        
   }
توجه: مشکلی که در کد های بالا وجود دارد این است که وقتی ما متن را تغییر می‌دهیم باید بدانیم که این تغییر اعمال شده است، یعنی باید در رویداد textchenge کادر متن متغییر seved را برابر با false قرار دهیم.
private void textBox1_TextChanged(object sender, EventArgs e)
        {
            seved = false;
        }
 
پرونده_فایل جدید:
کار فایل جدید به این صورت است که کادر متن و متغییر filename را خالی کند و متغییر saved هم برابر true کند، یعنی تا این قسمت از برنامه  چیزی به اسم فایل جدید نداریم که ذخیره نشده باشد میخواهیم فایلی جدید باز کنیم که فعلا ذخیره نشده است .
private void فایلجدیدToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            txtmatn.Text = "";
            filename = "";
            seved = true;
        }
 


نظر بدهید

نشانی ایمیل شما منتشر نخواهد شد .
برای ارسال نظر نیاز است وارد سایت شوید. در صورت نداشتن حساب کاربری عضو شوید.
23 جلسه برای دوره آموزش ویندوز فرم سی شارپ-مقدماتی

درس 1
مفاهیم ویندوز فرم و ساخت اولین برنامه
15 دقیقه / رایگان

درس 2
ویژگیهای فرم و تغییر آنها
20 دقیقه / رایگان

درس 3
رویدادهای فرم- بخش اول
26 دقیقه / رایگان

درس 4
رویدادهای فرم-بخش دوم
20 دقیقه / رایگان

درس 5
کنترل لیبل (Lable) و ویژگیهای آن
14 دقیقه / رایگان

درس 6
رویدادهای لیبل(Lable)
19 دقیقه / رایگان

درس 7
ساخت بازی دوز
35 دقیقه / رایگان

درس 8
کنترل دکمه(Button)
14 دقیقه / رایگان

درس 9
کنترل کادر متن(TextBox)
33 دقیقه / رایگان

درس 10
ساخت ماشین حساب
30 دقیقه / رایگان

درس 11
ساخت منو
22 دقیقه / رایگان

درس 14
کار با فایلهای متنی
21 دقیقه / رایگان

درس 15
ساخت برنامه ویرایشگر فارسی-بخش اول
23 دقیقه / رایگان

درس 16
ساخت برنامه ویرایشگر فارسی-بخش دوم
39 دقیقه / رایگان

درس 17
دکمه های رادیویی-RadioButton
17 دقیقه / رایگان

درس 18
کنترل کامبوباکس-combobox
35 دقیقه / رایگان

درس 19
اضافه کردن کلاس جدید به پروژه
7 دقیقه / رایگان

درس 21
ساخت نرم افزار رمزنگار متن-بخش اول
36 دقیقه / رایگان

درس 22
ساخت نرم افزار رمزنگار متن-بخش دوم
53 دقیقه / رایگان

درس 23
ارتباط با پایگاه داده
16 دقیقه / رایگان

درس 24
درج داده در پایگاه داده
17 دقیقه / رایگان

درس 25
حذف داده از پایگاه داده
10 دقیقه / رایگان

درس 26
واکشی داده از دیتابیس
16 دقیقه / رایگان

دوره آموزش ویندوز فرم سی شارپ-مقدماتی


تعداد جلسات 26 جلسه
مدت زمان 538 دقیقه
سطح مهارت مقدماتی
زبان فارسی
دانشجو 39 دانشجو
گواهی نامه ندارد
قیمت دوره : 0 تومان
درحال برگزاری
مهدی احمدی
مهدی احمدی

درباره مدرس :

از سال 1380 برنامه نویسی را شروع کرده و از سال 90 در این زمینه تدریس میکنم .با زبانهای سی پلاس پلاس ، سی ،پاسکال ،VB ، سی شارپ ،اسمبلی، جاوا و .... کار کرده و آنها را تدریس کرده ام.هم اکنون نیز مشغول تدریس در دانشگاه هستم و مدتی است با سایت درسمن همکاری میکنم