久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

用C#創(chuàng)建一個簡單的文本編輯器

 流年的熊 2010-10-17
學(xué)習(xí)用C#創(chuàng)建一個簡單的文本編輯器——Shawn&Cheney Editor,。

1.創(chuàng)建一個工程,,命名為SimpleEditor

2.把生成的文件Form1.cs重命名為SimpleEditorForm

3.設(shè)置窗體屬性:

Text:Shawn&Cheney Editor

Icon:選擇一個自定義圖標(biāo)

4.給窗體添加一個菜單欄和一個richTextBox控件

設(shè)置richTextBox控件屬性如下

屬性

Name

TextBoxEdit

Text

Multiline

True

Dock

Fill

ScollBars

Both

AcceptsReturn

True

AcceptsTab

True

5.給菜單項添加“新建”、“打開”,、“保存”,、“另存為”項目,分別設(shè)置好各自屬性,。

6.首先在SimpleEditorForm類中定義一個成員變量filename,,用來接收文件

public partial class SimpleEditorForm : Form
               {
                    private string filename = "Untitled";

             …………

         }

7.修改SimpleEditorForm構(gòu)造函數(shù),使其接收一個文件名參數(shù)

        public SimpleEditorForm(string filename)
                 {
                       InitializeComponent();
                        if (filename != null)
                            {
                                 this.filename = filename;
                                 OpenFile();
                           }

                    //如果接收到一個不為null的參數(shù),,就給前面定義的成員變量filename賦值

                   //然后調(diào)用OpenFile函數(shù),,這個函數(shù)接下來將會給出定義。
                    }

8.修改Program.cs中的main函數(shù),,使得main()可以給SimpleEditorForm傳遞filename參數(shù)

        static void Main(string[] args)
                       {
                               string filename = null;
                               if (args.Length != 0)
                               filename = args[0];

                                Application.EnableVisualStyles();
                               Application.SetCompatibleTextRenderingDefault(false);
                              Application.Run(new SimpleEditorForm(filename));
                         }

         //如果本程序執(zhí)行時帶有參數(shù)(即給定了文件名),,則這里會把這個文件名傳遞給SimpleEditorForm

        //否則,將傳遞一個空值

9.給出OpenFile()方法的實現(xiàn),,將OpenFile()作為SimpleEditorForm的成員函數(shù)

    public partial class SimpleEditorForm : Form
                    {
                       ………………

                    protected void OpenFile()
                                      {
                                          try
                                          {
                                               TextBoxEdit.Clear();
                                               TextBoxEdit.Text = File.ReadAllText(filename);
                                           }
                                           catch (IOException ex)
                                          {
                                               MessageBox.Show(ex.Message, "Simple Editor",
                                               MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                                            }
                                        }

                    ………………

              }

由于這里使用了File類,,所以必須添加using System.IO命名空間

10.給菜單項“新建”添加處理程序

        private void MenuItemNew_Click(object sender, EventArgs e)
                         {
                                 filename = "Untitled"; //新建的文件文件名應(yīng)該是Untitled
                                 TextBoxEdit.Clear();   //調(diào)用Clear()方法清空文本框
                         }

現(xiàn)在,已經(jīng)可以通過這個程序來打開文件了

要給應(yīng)用程序添加命令行參數(shù),,可以通過下面的方法:

在Solution Explorer中右擊項目,,點擊“屬性”,點擊“調(diào)試”,,輸入命令行參數(shù)

本例中輸入F:\CSharpPro\my6thPro\SimpleEditor\SimpleEditor\SimpleEditorForm.cs

運行程序,,可以看到文件已經(jīng)被打開了

下面我們接著說如何實現(xiàn)“打開”、“保存”,、“另存為”菜單項的功能,。

1.創(chuàng)建“打開”菜單項處理程序

首先將工具箱中的OpenFileDialog空間拖動到編輯區(qū)底部灰色區(qū)域,然后設(shè)置其屬性:

Name:dlgOpenFile

Filter:Text Documents (*.txt)|*.txt|ShawnCheney Documents (*.shawney)|*.shawnney|All Files|*.*

FilterIndex:2

然后雙擊菜單項中的“打開”項,,添加如下代碼:

        private void MenuItemOpen_Click(object sender, EventArgs e)
        {
            if (dlgOpenFile.ShowDialog() == DialogResult.OK)
            {
                filename = dlgOpenFile.FileName;
                OpenFile();

            }
        }

         //dlgOpenFile.ShowDialog() 將會打開“打開”對話框,,

         //如果點擊了OK,則讀取 dlgOpenFile.FileName屬性,,獲得文件名

         //最后調(diào)用OpenFile()方法打開文件,。

2.保存文件

與前面類似,,拖動SaveFileDialog控件到編輯區(qū)底部灰色區(qū)域,設(shè)置其屬性

Name:dlgSaveFile

Filter:Text Documents (*.txt)|*.txt|ShawnCheney Documents (*.shawney)|*.shawnney

FilterIndex:2

給“另存為”菜單項添加事件處理程序

        private void MenuItemSaveAs_Click(object sender, EventArgs e)
        {

            if (dlgSaveFile.ShowDialog() == DialogResult.OK)
            {
                filename = dlgSaveFile.FileName;
                SaveFile();
            }

        }

            //與前面類似,,如果對話框返回OK值,,則從dlgSaveFile.FileName獲得文件名

            //然后調(diào)用SaveFile()方法保存文件。

創(chuàng)建SaveFile()方法,,由于保存的時候可能會產(chǎn)生很多問題,,因此,放在try塊內(nèi),!

        private void SaveFile()
        {
            try
            {
                File.WriteAllText(filename, TextBoxEdit.Text);
            }
            catch (IOException ex)
            {
                MessageBox.Show(ex.Message, "Shawn&Cheney Editor",
                MessageBoxButtons.OK,MessageBoxIcon.Exclamation);
            }
        }

至此,,“另存為”功能實現(xiàn)了。

為什么不為“保存”按鈕添加上面那個處理程序呢,?

        原因在于,,如果用戶點擊“保存”按鈕時,當(dāng)前的文檔不是一個用戶新建的文檔,,或者說當(dāng)前文檔時一個已經(jīng)擁有文件名的文檔,,那么是不需要用戶輸入文件名的!而“另存為”按鈕,,則無論什么情況都需要用戶輸入文件名,。所以“另存為”按鈕相對來說邏輯比較簡單。

3.下面來實現(xiàn)“保存”按鈕,。

       private void MenuItemSave_Click(object sender, EventArgs e)
        {

           if (filename == "Untitled")
            {
                MenuItemSaveAs_Click(sender, e);         

                 //如果當(dāng)前文檔文件名是Untitled,,點擊“保存”和點擊“另存為”效果一樣

                 //所以調(diào)用“另存為”按鈕的處理函數(shù)MenuItemSaveAs_Click()函數(shù)。
            }
            else
            {
                SaveFile();

                 //否則就直接保存,。
            }
        }

到此為止,,一個具有新建打開保存功能的簡單文本編輯器就做好了,。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多