天天看點

用C#語言實作記事本

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;

//建立一個Windows窗體應用程式,并命名為“Notepad”,選擇  模版 → Visual C# → windows→ //windows窗體應用程式 在下面的名稱寫Notepad 

namespace 記事本

{

    public partial class Form1 : Form

    {

        bool b = false;//b=false表示檔案是建立的,true表示從磁盤打開的

        bool s = true;//s=true表示檔案是已經被儲存了,false表示檔案沒有被儲存

        public Form1()

        {

            InitializeComponent();

        }

        private void Form1_Load(object sender, EventArgs e)

        {

        }

        private void saveFileDialog1_FileOk(object sender, System.ComponentModel.CancelEventArgs e)

        {

        }

        private void openFileDialog1_FileOk(object sender, System.ComponentModel.CancelEventArgs e)

        {

        }

        private void rtxtNotepad_TextChanged(object sender, EventArgs e)

        {

            s = false;//檔案被修改之後,沒有被儲存

        }

        private void 建立ToolStripMenuItem_Click(object sender, EventArgs e)

        {

            // 判斷目前檔案是否從磁盤打開,或者建立時文檔不為空,并且檔案未被儲存

            if (b == true || rtxtNotepad.Text.Trim() != "")

            {

                // 若檔案未儲存

                if (s == false)

                {

                    string result;

                    result = MessageBox.Show("檔案尚未儲存,是否儲存?",

                        "儲存檔案", MessageBoxButtons.YesNoCancel).ToString();

                    switch (result)

                    {

                        case "Yes":

                            // 若檔案是從磁盤打開的

                            if (b == true)

                            {

                                // 按檔案打開的路徑儲存檔案

                                rtxtNotepad.SaveFile(openFileDialog1.FileName);

                            }

                            // 若檔案不是從磁盤打開的

                            else if (saveFileDialog1.ShowDialog() == DialogResult.OK)

                            {

                                rtxtNotepad.SaveFile(saveFileDialog1.FileName);

                            }

                            s = true;

                            rtxtNotepad.Text = "";

                            break;

                        case "No":

                            b = false;

                            rtxtNotepad.Text = "";

                            break;

                    }

                }

            }

        }

        private void 打開ToolStripMenuItem_Click(object sender, EventArgs e)

        {

            if (b == true || rtxtNotepad.Text.Trim() != "")

            {

                if (s == false)

                {

                    string result;

                    result = MessageBox.Show("檔案尚未儲存,是否儲存?",

                        "儲存檔案", MessageBoxButtons.YesNoCancel).ToString();

                    switch (result)

                    {

                        case "Yes":

                            if (b == true)

                            {

                                rtxtNotepad.SaveFile(openFileDialog1.FileName);

                            }

                            else if (saveFileDialog1.ShowDialog() == DialogResult.OK)

                            {

                                rtxtNotepad.SaveFile(saveFileDialog1.FileName);

                            }

                            s = true;

                            break;

                        case "No":

                            b = false;

                            rtxtNotepad.Text = "";

                            break;

                    }

                }

            }

            openFileDialog1.RestoreDirectory = true;

            if ((openFileDialog1.ShowDialog() == DialogResult.OK) && openFileDialog1.FileName != "")

            {

                rtxtNotepad.LoadFile(openFileDialog1.FileName);//打開代碼語句

                b = true;

            }

            s = true;

        }

        private void 儲存ToolStripMenuItem_Click(object sender, EventArgs e)

        {

            if (b == true && rtxtNotepad.Modified == true)

            {

                rtxtNotepad.SaveFile(openFileDialog1.FileName);

                s = true;

            }

            else if (b == false && rtxtNotepad.Text.Trim() != "" &&

                saveFileDialog1.ShowDialog() == DialogResult.OK)

            {

                rtxtNotepad.SaveFile(saveFileDialog1.FileName);//儲存語句

                s = true;

                b = true;

                openFileDialog1.FileName = saveFileDialog1.FileName;

            }

        }

        private void 另存為ToolStripMenuItem_Click(object sender, EventArgs e)

        {

            if (saveFileDialog1.ShowDialog() == DialogResult.OK)

            {

                rtxtNotepad.SaveFile(saveFileDialog1.FileName);

                s = true;

            }

        }

        private void 退出ToolStripMenuItem_Click(object sender, EventArgs e)

        {

            Application.Exit();//程式結束

        }

        private void 撤銷ToolStripMenuItem_Click(object sender, EventArgs e)

        {

            rtxtNotepad.Undo();//撤銷

        }

        private void 複制ToolStripMenuItem_Click(object sender, EventArgs e)

        {

            rtxtNotepad.Copy();//複制

        }

        private void 剪切ToolStripMenuItem_Click(object sender, EventArgs e)

        {

            rtxtNotepad.Cut();//剪切

        }

        private void 粘貼ToolStripMenuItem_Click(object sender, EventArgs e)

        {

            rtxtNotepad.Paste();//粘貼

        }

        private void 全選ToolStripMenuItem_Click(object sender, EventArgs e)

        {

            rtxtNotepad.SelectAll();//全選

        }

        private void 日期ToolStripMenuItem_Click(object sender, EventArgs e)

        {

            rtxtNotepad.AppendText(System.DateTime.Now.ToString());//顯示目前日期

        }

        private void 自動換行ToolStripMenuItem_Click(object sender, EventArgs e)

        {

            if (自動換行ToolStripMenuItem.Checked == false)

            {

                自動換行ToolStripMenuItem.Checked = true;            // 選中該菜單項

                rtxtNotepad.WordWrap = true;        // 設定為自動換行

            }

            else

            {

                自動換行ToolStripMenuItem.Checked = false;

                rtxtNotepad.WordWrap = false;

            }

        }

        private void 字型ToolStripMenuItem_Click(object sender, EventArgs e)

        {

            fdlgNotepad.ShowColor = true;

            if (fdlgNotepad.ShowDialog() == DialogResult.OK)

            {

                rtxtNotepad.SelectionColor = fdlgNotepad.Color;

                rtxtNotepad.SelectionFont = fdlgNotepad.Font;

            }

        }

        private void 工具欄ToolStripMenuItem_Click(object sender, EventArgs e)

        {

            Point point;

            if (工具欄ToolStripMenuItem.Checked == true)

            {

                // 隐藏工具欄時,把坐标設為(0,24),因為菜單的高度為24

                point = new Point(0, 24);

                工具欄ToolStripMenuItem.Checked = false;

                tlsNotepad.Visible = false;

                // 設定多格式文本框左上角位置

                rtxtNotepad.Location = point;

                // 隐藏工具欄後,增加文本框高度

                rtxtNotepad.Height += tlsNotepad.Height;

            }

            else

            {

                point = new Point(0, 49);

                工具欄ToolStripMenuItem.Checked = true;

                tlsNotepad.Visible = true;

                rtxtNotepad.Location = point;

                rtxtNotepad.Height -= tlsNotepad.Height;

            }

        }

        private void 狀态欄ToolStripMenuItem_Click(object sender, EventArgs e)

        {

            if (狀态欄ToolStripMenuItem.Checked == true)

            {

                狀态欄ToolStripMenuItem.Checked = false;

                stsNotepad.Visible = false;

                rtxtNotepad.Height += stsNotepad.Height;

            }

            else

            {

                狀态欄ToolStripMenuItem.Checked = true;

                stsNotepad.Visible = true;

                rtxtNotepad.Height -= stsNotepad.Height;

            }

        }

    }

}

用C#語言實作記事本

運作之後的記事本界面為

用C#語言實作記事本

 倉庫位址:

MY PROGRAM_new: My first program (gitee.com)

繼續閱讀