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;
}
}
}
}
運作之後的記事本界面為
倉庫位址:
MY PROGRAM_new: My first program (gitee.com)