C#编写一个简单记事本功能
本文实例为大家分享了C#编写记事本的具体代码,供大家参考,具体内容如下
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Threading.Tasks;
usingSystem.Windows.Forms;
namespaceNotepad
{
publicpartialclassfrmNotepad:Form
{
//****************************************
/*布尔变量b用于判断文件是新建的还是从磁盘打开的true表示从磁盘打开,false表示文件是新建的,默认值为false*/
boolb=false;
/*布尔变量s用于判断文件是否被保存true表示已经被保存,false表示未被保存,默认值为true*/
bools=true;
//***********************************
publicfrmNotepad()
{
InitializeComponent();
richTextBox1.Text="";
}
//***********************************************
//多格式文本框的TextChanged事件代码
//************************************************
privatevoidrichTextBox1_TextChanged(objectsender,EventArgse)
{
//文本框被修改后,设置s为false,表示文件未保存
s=false;
}
//*****************************************
//【文件】菜单各菜单项的单击代码
//*******************************************
//*****************************************
//【新建】菜单代码
//*********************************************
privatevoid新建NToolStripMenuItem_Click(objectsender,EventArgse)
{
//判断当前文件是否是从磁盘打开,或者新建时文档不为空,并且文件未被保存
if(b==true||richTextBox1.Text.Trim()!="")
{
//若文件未保存
if(s==false)
{
stringresult;
result=MessageBox.Show("文件尚未保存,是否保存?","保存文件",MessageBoxButtons.YesNoCancel).ToString();
switch(result)
{
case"Yes":
//若文件是从磁盘打开的
if(b==true)
{
//按文件打开的路径保存文件
richTextBox1.SaveFile(sdlgNotepad.FileName);
}elseif(sdlgNotepad.ShowDialog()==DialogResult.OK)
{
richTextBox1.SaveFile(sdlgNotepad.FileName);
}
s=true;
richTextBox1.Text="";
break;
case"No":
b=false;
richTextBox1.Text="";
break;
}
}
}
}
//*******************************************
//【保存】菜单代码
//********************************************
privatevoid保存SToolStripMenuItem_Click(objectsender,EventArgse)
{
//若文件从磁盘打开并且修改了其中内容
if(b==true&&richTextBox1.Modified==true)
{
richTextBox1.SaveFile(odlgNotepad.FileName);
s=true;
}
elseif(b==false&&richTextBox1.Text.Trim()!=""&&sdlgNotepad.ShowDialog()==DialogResult.OK)
{
//保存文件
richTextBox1.SaveFile(sdlgNotepad.FileName);
s=true;
b=true;
odlgNotepad.FileName=sdlgNotepad.FileName;
}
}
//**********************************************
//【打开】菜单代码
//************************************************
privatevoid打开OToolStripMenuItem_Click(objectsender,EventArgse)
{
//判断当前文件是否是从磁盘打开,或者新建时文档不为空,并且文件未被保存
try
{
if(b==true||richTextBox1.Text.Trim()!="")
{
if(s==false)
{
stringresult;
result=MessageBox.Show("文件尚未保存,是否保存?","保存文件",MessageBoxButtons.YesNoCancel).ToString();
switch(result)
{
case"Yes":
//若文件是从磁盘打开的
if(b==true)
{
//按文件打开的路径保存文件
richTextBox1.SaveFile(sdlgNotepad.FileName);
}
elseif(sdlgNotepad.ShowDialog()==DialogResult.OK)
{
richTextBox1.SaveFile(sdlgNotepad.FileName);
}
s=true;
richTextBox1.Text="";
break;
case"No":
b=false;
richTextBox1.Text="";
break;
}
}
}
odlgNotepad.RestoreDirectory=true;
if((odlgNotepad.ShowDialog()==DialogResult.OK)&&odlgNotepad.FileName!="")
{
//打开文件
richTextBox1.LoadFile(odlgNotepad.FileName);
b=true;
}
s=true;
}
catch(Exceptionex)
{
}
}
//************************************
//【另存为】菜单代码
//*****************************************
privatevoid另存为AToolStripMenuItem_Click(objectsender,EventArgse)
{
if(sdlgNotepad.ShowDialog()==DialogResult.OK)
{
richTextBox1.SaveFile(sdlgNotepad.FileName);
s=true;
}
}
//***************************************
//【退出】菜单代码
//******************************************
privatevoid退出XToolStripMenuItem_Click(objectsender,EventArgse)
{
//结束程序运行
Application.Exit();
}
//************************************
//【编辑】菜单各菜单项的单击代码
//*********************************************
//【撤销】菜单代码
privatevoid撤消UToolStripMenuItem_Click(objectsender,EventArgse)
{
//撤销操作
richTextBox1.Undo();
}
//【复制】菜单代码
privatevoid复制CToolStripMenuItem_Click(objectsender,EventArgse)
{
//复制
richTextBox1.Copy();
}
//【剪切】菜单代码
privatevoid剪切TToolStripMenuItem_Click(objectsender,EventArgse)
{
//剪切
richTextBox1.Cut();
}
//【粘贴】菜单代码
privatevoid粘贴PToolStripMenuItem_Click(objectsender,EventArgse)
{
//粘贴
richTextBox1.Paste();
}
//【全选】菜单代码
privatevoid全选AToolStripMenuItem_Click(objectsender,EventArgse)
{
//全选
richTextBox1.SelectAll();
}
//*************************************
//【格式】菜单代码
//***************************************
privatevoid工具TToolStripMenuItem_Click(objectsender,EventArgse)
{
}
//【自动换行】菜单代码
privatevoid自定义CToolStripMenuItem_Click(objectsender,EventArgse)
{
if(自定义CToolStripMenuItem.Checked==false)
{
//选中自动换行
自定义CToolStripMenuItem.Checked=true;
//设置为自动换行
richTextBox1.WordWrap=true;
}
else
{
//未选中自动换行
自定义CToolStripMenuItem.Checked=false;
//设置为不自动换行
richTextBox1.WordWrap=false;
}
}
//【字体】菜单代码
privatevoid选项OToolStripMenuItem_Click(objectsender,EventArgse)
{
fdlgNotepad.ShowColor=true;
if(fdlgNotepad.ShowDialog()==DialogResult.OK)
{
richTextBox1.SelectionColor=fdlgNotepad.Color;
richTextBox1.SelectionFont=fdlgNotepad.Font;
}
}
//************************************
//【帮助】菜单代码
//************************************
//【关于】菜单代码
privatevoid关于AToolStripMenuItem_Click(objectsender,EventArgse)
{
MessageBox.Show("wky编写","关于\"记事本\"",MessageBoxButtons.OK);
}
//***************************************
//计时器控件的Tick事件代码
//************************************
privatevoidtmrNotepad_Tick(objectsender,EventArgse)
{
//获取系统当前时间,并显示在状态栏中
tssLbl2.Text=System.DateTime.Now.ToString();
}
privatevoid粘贴PToolStripButton_Click(objectsender,EventArgse)
{
richTextBox1.Paste();
}
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。