简单记事本的写法.docx
《简单记事本的写法.docx》由会员分享,可在线阅读,更多相关《简单记事本的写法.docx(16页珍藏版)》请在冰豆网上搜索。
简单记事本的写法
简单记事本的写法
用C#编写记事本首先要引用与文件读写有关的命名空间usingSystem.IO;
记事本的撤销,复制,粘贴,剪切,删除,字体,颜色等实现起来比较简单,只要几句代码:
privatevoid剪切ToolStripMenuItem_Click(objectsender,EventArgse)
{
if(textBox1.SelectionLength!
=0)
{
textBox1.Cut();
}
}
privatevoid复制CToolStripMenuItem_Click(objectsender,EventArgse)
{
if(textBox1.SelectionLength!
=0)
{
textBox1.Copy();
}
}
privatevoid粘贴PToolStripMenuItem_Click(objectsender,EventArgse)
{
if(Clipboard.GetText().ToString()!
="")//剪贴板里有文本
textBox1.Paste();
}
}
privatevoid撤销ToolStripMenuItem_Click(objectsender,EventArgse)
{
if(textBox1.CanUndo==true)//文本可以撤销
{
textBox1.Undo();
textBox1.ClearUndo();//消除最近的撤销信息
}
}
privatevoid全选ToolStripMenuItem_Click(objectsender,EventArgse)
{
if(textBox1.Text!
=string.Empty)
{
textBox1.SelectAll();
}
}
privatevoid删除ToolStripMenuItem_Click(objectsender,EventArgse)
{
if(textBox1.SelectedText!
=string.Empty)
{
textBox1.SelectedText=string.Empty;
}
}
privatevoid时间日期ToolStripMenuItem_Click(objectsender,EventArgse)
{
textBox1.Text=textBox1.Text+DateTime.Now.ToString();
}
privatevoid字体ToolStripMenuItem_Click(objectsender,EventArgse)
{
if(fontDialog1.ShowDialog()==DialogResult.OK)
{
textBox1.Font=fontDialog1.Font;
}
}
privatevoid颜色ToolStripMenuItem_Click(objectsender,EventArgse)
{
if(colorDialog1.ShowDialog()==DialogResult.OK)
{
textBox1.ForeColor=colorDialog1.Color;
}
}
privatevoid自动换行ToolStripMenuItem_Click(objectsender,EventArgse)
{
if(自动换行ToolStripMenuItem.Checked==true)//如果选中了自动换行
{
textBox1.WordWrap=true;//文本就可以换行(前提是有水平垂直滚动条)
}
else
{
textBox1.WordWrap=false;
}
}
privatevoid编辑EToolStripMenuItem_DropDownOpened(objectsender,EventArgse)//当单击编辑打开时,判断各项能不能使用
{
if(textBox1.Modified==false)
{
撤销ToolStripMenuItem.Enabled=false;
}
else
{
撤销ToolStripMenuItem.Enabled=true;
}
if(textBox1.SelectedText=="")
{
剪切ToolStripMenuItem.Enabled=false;
复制CToolStripMenuItem.Enabled=false;
删除ToolStripMenuItem.Enabled=false;
}
else
{
剪切ToolStripMenuItem.Enabled=true;
复制CToolStripMenuItem.Enabled=true;
删除ToolStripMenuItem.Enabled=true;
}
if(textBox1.Text=="")
{
查找ToolStripMenuItem.Enabled=false;
替换ToolStripMenuItem.Enabled=false;
}
else
{
查找ToolStripMenuItem.Enabled=true;
替换ToolStripMenuItem.Enabled=true;
}
if(Clipboard.GetText().ToString()=="")
{
粘贴PToolStripMenuItem.Enabled=false;
}
else
{
粘贴PToolStripMenuItem.Enabled=true;
}
}
privatevoid另存为AToolStripMenuItem_Click(objectsender,EventArgse)
{
if(this.saveFileDialog1.ShowDialog()==DialogResult.OK)
{
StreamWriterwriter=newStreamWriter(saveFileDialog1.FileName,true,System.Text.Encoding.Default);
writer.Write(textBox1.Text);
writer.Close();
textBox1.Modified=false;
}
}//另存为直接打开保存对话框,创建流写入对象(其构造函数参数一是保存路径及文件名,二是是否覆盖原文件,三是一本系统默认的字符编码保存),用流写入对象的write方法(要被写入保存的文本),最后关闭流写入对象。
将文本的是否变动设为false,这样再关闭或保存时不会提示要求保存了。
privatevoid打开OToolStripMenuItem1_Click(objectsender,EventArgse)
{
if(this.openFileDialog1.ShowDialog()==DialogResult.OK)
{
this.Text=openFileDialog1.SafeFileName+"-记事本";//safeFileName为文件名不加路径
StreamReaderreader=newStreamReader(openFileDialog1.FileName,System.Text.Encoding.Default);
textBox1.Text=reader.ReadToEnd();
this.Filename=openFileDialog1.FileName;//给公共字符串字段赋值用于保存时判断文件名是否存在
reader.Close();
}
}//打开创建的流读取对象,与流写入对象差不多。
其中Filename是在类下面声明的值为""的字符串公共变量,在打开文本时就被文件路径及名称赋值,用于在以后保存文件时自动保存,而不是打开保存对话框保
存。
privatevoid保存SToolStripMenuItem_Click(objectsender,EventArgse)
{
if(this.Filename==string.Empty)//判断文件是否存在
{
//不存在就打开对话框保存,把用户单击对话框按钮时返回的值赋给枚举类的DialogResult变量result。
DialogResultresult=saveFileDialog1.ShowDialog();
如果result值为DialogResult.Cancel,说明用户单击了取消按钮,则什么也不处理.
if(result==DialogResult.Cancel)
{
textBox1.Text=textBox1.Text;
}
else
{
StreamWriterwriter=newStreamWriter(saveFileDialog1.FileName,true,ASCIIEncoding.Default);
writer.Write(textBox1.Text);
writer.Close();
textBox1.Modified=false;
}
}
else
{
StreamWriterwriter=newStreamWriter(this.Filename,true,ASCIIEncoding.Default);
writer.Write(textBox1.Text);
writer.Close();
textBox1.Modified=false;
}
}
//新建是保存跟另存为的结合体
privatevoid新建ToolStripMenuItem_Click(objectsender,EventArgse)
{
if(textBox1.Modified==true)
{
DialogResultresult=MessageBox.Show("文本发生了改变,要保存吗?
","注意",MessageBoxButtons.YesNoCancel);
if(result==DialogResult.Yes)
{
if(this.Filename=="")
{
DialogResultbresult=saveFileDialog1.ShowDialog();
if(bresult==DialogResult.Cancel)
{
textBox1.Text=textBox1.Text;
}
else
{
saveFileDialog1.ShowDialog();
StreamWriterwriter=newStreamWriter(saveFileDialog1.FileName,true,ASCIIEncoding.Default);
writer.Write(textBox1.Text);
writer.Close();
textBox1.Modified=false;
}
}
else
{
StreamWriterwriter=newStreamWriter(this.Filename,true,ASCIIEncoding.Default);
writer.Write(textBox1.Text);
writer.Close();
textBox1.Modified=false;
}
}
elseif(result==DialogResult.No)
{
textBox1.Clear();
}
else
{
textBox1.Text=textBox1.Text;
}
}
else
{
textBox1.Clear();
}
}
给记事本的菜单栏里的功能加快捷键(属性shortcutkeys)
一下是查找替换的代码form5为查找替换窗口,form3为记事本窗口
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Windows.Forms;
namespace数据库编程基础
{
publicpartialclassForm5:
Form
{
publicstringchazhaowenben;//接受来自记事本里的文本
publicintindex;
publicintlastindex;
publicintguangbiaowenzhi;
publicstringjishibenwenben;
publicForm5()
{
InitializeComponent();
}
privatevoidbtchazhao_Click(objectsender,EventArgse)
{
Form3form3=(Form3)this.Owner;
jishibenwenben=form3.str;
chazhaowenben=chazhao.Text;
if(xiangqian.Checked==true)
{
if(xufendaxiaoxie.Checked==true)
{
index=jishibenwenben.IndexOf(chazhaowenben,form3.guangbiao/*guangbiaowenzhi*/);
}
else
{
index=jishibenwenben.IndexOf(chazhaowenben,form3.guangbiao/*guangbiaowenzhi*/,StringComparison.CurrentCultureIgnoreCase);
}
if(index==-1)
{
MessageBox.Show(string.Format("查不到/"{0}/"或已经到文件尾",chazhaowenben));
}
else
{
form3.textBox1.Select(index,chazhaowenben.Length);
form3.textBox1.Focus();
form3.guangbiao/*guangbiaowenzhi*/=index+chazhaowenben.Length;
}
}
else
{
if(xufendaxiaoxie.Checked==true)
{
lastindex=jishibenwenben.LastIndexOf(chazhaowenben,form3.guangbiao/*guangbiaowenzhi*/);
}
else
{
lastindex=jishibenwenben.LastIndexOf(chazhaowenben,form3.guangbiao/*guangbiaowenzhi*/,StringComparison.CurrentCultureIgnoreCase);
}
if(lastindex==-1)
{
MessageBox.Show(string.Format("查不到/"{0}/"或已经到文件头",chazhaowenben));
}
else
{
form3.textBox1.Select(lastindex,chazhaowenben.Length);
form3.textBox1.Focus();
form3.guangbiao/*guangbiaowenzhi*/=lastindex-1;
if(form3.guangbiao<0)
{
form3.guangbiao
=lastindex-1;
MessageBox.Show(string.Format("查不到/"{0}/"或已经到文件头",chazhaowenben));
}
}
}
}
privatevoidchazhao_TextChanged(objectsender,EventArgse)
{
if(this.chazhao.Text=="")
{
btchazhao.Enabled=false;
bttihuan.Enabled=false;
}
else
{
btchazhao.Enabled=true;
bttihuan.Enabled=true;
}
}
privatevoidForm5_Load(objectsender,EventArgse)
{
this.label4.Text="0";
if(this.chazhao.Text=="")
{
btchazhao.Enabled=false;
bttihuan.Enabled=false;
}
else
{
btchazhao.Enabled=true;
bttihuan.Enabled=true;
}
}
privatevoidbtquxiao_Click(objectsender,EventArgse)
{
this.Close();
}
privatevoidbutton1_Click(objectsender,EventArgse)
{
Form3form3=(Form3)this.Owner;
//guangbiaowenzhi=form3.guangbiao;
//this.label4.Text=guangbiaowenzhi.ToString();
this.label4.Text=Convert.ToString(form3.guangbiao);
}
privatevoidbttihuan_Click(objectsender,EventArgse)
{
Form3form3=(Form3)this.Owner;
form3.textBox1.SelectedText=this.tihuan.Text;
form3.textBox1.Modified=true;
}
}
}
只有查找替换必须的代码
publicpartialclassForm3:
Form
{
privatestringFilename="";
publicstringstr;//用于存储记事本里的文本
publicintguangbiao;//用于存储光标位置
privatevoid查找替换ToolStripMenuItem_Click(objectsender,EventArgse)
{
Form5form5=newForm5();
form5.Owner=this;
str=this.textBox1.Text;
//guangbiao=this.textBox1.SelectionStart;
//form5.guangbiaowenzhi=this.textBox1.SelectionStart;
form5.Show();
}
privatevoidtextBox1_Click(objectsender,EventArgse)
{
//Form5form5=newForm5();
//form5.Owner=this;
str=this.textBox1.Text;
//guangbiao=this.textBox1.SelectionStart;
//form5.guangbiaowenzhi=this.textBox1.SelectionStart;
this.guangbiao=this.textBox1.SelectionStart;
}