using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Notepad
{
public partial class frmNotepad : Form
{
//布尔变量b是用于判断文件是新建还是从磁盘打开 false 是新建 true是打开
private bool b = false;
//s是判断文件是否保存 false是没有保存
private bool s = false ;
public frmNotepad()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
//新建文件
private void 新建ToolStripMenuItem_Click(object sender, EventArgs e)
{
if (s == true)
{
DialogResult result = MessageBox.Show("文本内容已经改变,需要保存吗?", "保存文本", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question);
switch (result)
{
case DialogResult.Yes:
{
保存SCtrlSToolStripMenuItem_Click(sender, e);
rchShow.Clear();
this.Text = "编辑文本...新建文本";
s = false;
break;
}
case DialogResult.No:
{
rchShow.Clear();
this.Text = "编辑文本...新建文本";
s = false;
break;
}
case DialogResult.Cancel:
{
break;
}
}
}
else
{
rchShow.Clear();
this.Text = "编辑文本...新建文本";
}
}
//打开文件
private void 打开OCtrlOToolStripMenuItem_Click(object sender, EventArgs e)
{
if (b == true || rchShow.Text.Trim() != "")
{
if (s == false)
{
string result;
result = MessageBox.Show("文件未保存,是否保存", "保存文件", MessageBoxButtons.YesNoCancel).ToString();
switch (result)
{
case "Yes":
if (b == true)
{
rchShow.SaveFile(odlgNotepad.FileName);
}
else if (odlgNotepad.ShowDialog() == DialogResult.OK)
{
rchShow.SaveFile(sdlgNotepad.FileName);
}
s = true;
break;
case "No":
b = false;
rchShow.Text = "";
break;
}
}
}
odlgNotepad.RestoreDirectory = true;
if (odlgNotepad.ShowDialog() == DialogResult.OK && odlgNotepad.FileName != "")
{
rchShow.LoadFile(odlgNotepad.FileName, RichTextBoxStreamType.PlainText);
b = true;
}
s = true;
}
private void 保存SCtrlSToolStripMenuItem_Click(object sender, EventArgs e)
{
//若文件在磁盘中打开或者修改
if (b == true && rchShow.Modified == true)
{
rchShow.SaveFile(odlgNotepad.FileName, RichTextBoxStreamType.PlainText);
s = true;
}
else if (b == false && rchShow.Text.Trim() != "" && sdlgNotepad.ShowDialog() == DialogResult.OK)
{
rchShow.SaveFile(sdlgNotepad.FileName, RichTextBoxStreamType.PlainText);
s = true;
b = true;
odlgNotepad.FileName = sdlgNotepad.FileName;
}
}
private void 另存为ToolStripMenuItem_Click(object sender, EventArgs e)
{
try
{
//SaveFileDialog sd = new SaveFileDialog();
if (sdlgNotepad.ShowDialog()==DialogResult.OK)
{
this.rchShow.SaveFile(sdlgNotepad.FileName, RichTextBoxStreamType.PlainText);
s = true;
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
//菜单项退出代码
private void 退出EToolStripMenuItem_Click(object sender, EventArgs e)
{
Application.Exit();
}
//撤销
private void 撤销ToolStripMenuItem_Click(object sender, EventArgs e)
{
rchShow.Undo();
}
//复制
private void 复制CtrlCToolStripMenuItem_Click(object sender, EventArgs e)
{
if (rchShow.SelectedText.Length > 0)
rchShow.Copy();
}
//剪切
private void 剪切XToolStripMenuItem_Click(object sender, EventArgs e)
{
rchShow.Cut();
}
//粘贴
private void 粘贴CtrlVToolStripMenuItem_Click(object sender, EventArgs e)
{
rchShow.Paste();
}
//显示时间
private void 时间ToolStripMenuItem_Click(object sender, EventArgs e)
{
rchShow.Text += DateTime.Now.ToString();
}
//全选
private void 全选ACtrlAToolStripMenuItem1_Click(object sender, EventArgs e)
{
rchShow.SelectAll();
}
//自动换行
private void 自动换行ToolStripMenuItem_Click(object sender, EventArgs e)
{
if (自动换行ToolStripMenuItem.Checked == false)
{
自动换行ToolStripMenuItem.Checked = true;
rchShow.WordWrap = true;
}
else
{
自动换行ToolStripMenuItem.Checked = false;
rchShow.WordWrap = false;
}
}
//字体
private void 字体ToolStripMenuItem_Click(object sender, EventArgs e)
{
fdlgNotepad.ShowColor = true;
fdlgNotepad.ShowEffects = true;
fdlgNotepad.AllowVerticalFonts = true;
fdlgNotepad.AllowScriptChange = true;
if (fdlgNotepad.ShowDialog() == DialogResult.OK)
{
rchShow.SelectionColor = fdlgNotepad.Color;
rchShow.SelectionFont = fdlgNotepad.Font;
}
}
//关于记事本
private void 关于记事本ToolStripMenuItem_Click(object sender, EventArgs e)
{
frmAbout of_About = new frmAbout();
of_About.ShowDialog();
}
private void tmrNotepad_Tick(object sender, EventArgs e)
{
label1.Text = System.DateTime.Now.ToString();
}
private void fdlgNotepad_Apply(object sender, EventArgs e)
{
fdlgNotepad.ShowColor = true;
fdlgNotepad.AllowScriptChange = true;
fdlgNotepad.AllowVerticalFonts = true;
fdlgNotepad.ShowEffects = true;
if (fdlgNotepad.ShowDialog() == DialogResult.OK)
{
rchShow.Font = fdlgNotepad.Font;
rchShow.ForeColor = fdlgNotepad.Color;
}
}
//右键菜单
private void copyToolStripMenuItem_Click(object sender, EventArgs e)
{
if (rchShow.SelectedText.Length > 0)
rchShow.Copy();
}
private void 粘贴ToolStripMenuItem_Click(object sender, EventArgs e)
{
rchShow.Paste();
}
private void 剪切ToolStripMenuItem_Click(object sender, EventArgs e)
{
rchShow.Cut();
}
private void 撤销ToolStripMenuItem1_Click(object sender, EventArgs e)
{
rchShow.Undo();
}
private void 全选ToolStripMenuItem_Click(object sender, EventArgs e)
{
rchShow.SelectAll();
}
}
}