您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 广告经营 > 用C编写文本编辑器实验报告
用C#编写“文本编辑器”实验报告实验3项目名称:文本编辑器1、实验目的和要求通过本实验,使得学生理解操作系统目录与文件的概念,掌握文件流的读写操作。要求编写一个满足以下条件的文本编辑器程序。(1)程序界面与操作系统中的记事本界面类似。(2)程序可以打开、保存和编辑txt文本文件。(3)程序可以查找和替换文本内容中的指定字符串2、程序代码usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Windows.Forms;usingSystem.IO;namespace记事本{publicpartialclassfrmNotepad:Form{boolb=false;//布尔变量b用于判断文件是新建的还是从磁盘打开。true表示文件从磁盘打开的,false表示文件是新建的,默认值为falsebools=true;//布尔变量s用于判断文件是否被保存。false表示未被保存,默认值为truepublicfrmNotepad(){InitializeComponent();}/*多格式文本框TextChange的事件代码*/privatevoidrtxtNotepad_TextChanged(objectsender,EventArgse){//文本被修改后,设置s为false,表示文件未被保存s=false;}/*【新建】菜单代码*/privatevoidtsmiNew_Click(objectsender,EventArgse){//判断当前文件是否从磁盘打开,或者新建时文档不为空,并且文件未被保存if(b==true||rtxtNotepad.Text.Trim()!=){//若文件未被保存if(s==false){stringresult;result=MessageBox.Show(文件尚未保存,是否保存?,保存文件,MessageBoxButtons.YesNoCancel).ToString();switch(result){caseYes://若文件是从磁盘打开的if(b==true){//按文件打开的路径保存文件rtxtNotepad.SaveFile(odlgNotepad.FileName);}//若文件不是从磁盘打开的elseif(sdlgNotepad.ShowDialog()==DialogResult.OK){rtxtNotepad.SaveFile(sdlgNotepad.FileName);}s=true;rtxtNotepad.Text=;break;caseNo:b=false;rtxtNotepad.Text=;break;}}}}/*【打开】菜单代码*/privatevoidtsmiOpen_Click(objectsender,EventArgse){if(b==true||rtxtNotepad.Text.Trim()!=){stringresult;result=MessageBox.Show(文件尚未保存,是否保存?,保存文件,MessageBoxButtons.YesNoCancel).ToString();switch(result){caseYes:if(b==true){rtxtNotepad.SaveFile(odlgNotepad.FileName);}elseif(sdlgNotepad.ShowDialog()==DialogResult.OK){rtxtNotepad.SaveFile(sdlgNotepad.FileName);}s=true;rtxtNotepad.Text=;break;caseNo:b=false;rtxtNotepad.Text=;break;}}odlgNotepad.RestoreDirectory=true;if((odlgNotepad.ShowDialog()==DialogResult.OK)&&odlgNotepad.FileName!=){rtxtNotepad.LoadFile(odlgNotepad.FileName);b=true;}s=true;}/*【保存】菜单代码*/privatevoidtsmiSave_Click(objectsender,EventArgse){//若文件从磁盘打开并且修改了其内容if(b==true&&rtxtNotepad.Modified==true){rtxtNotepad.SaveFile(odlgNotepad.FileName);s=true;}elseif(b==false&&rtxtNotepad.Text.Trim()!=&&sdlgNotepad.ShowDialog()==DialogResult.OK){rtxtNotepad.SaveFile(sdlgNotepad.FileName);s=true;b=true;odlgNotepad.FileName=sdlgNotepad.FileName;}}/*【另存为】菜单代码*/privatevoidtsmiSaveAs_Click(objectsender,EventArgse){if(sdlgNotepad.ShowDialog()==DialogResult.OK){rtxtNotepad.SaveFile(sdlgNotepad.FileName);s=true;}}/*【退出】菜单代码*/privatevoidtsmiClose_Click(objectsender,EventArgse){Application.Exit();}//【撤销】菜单代码privatevoidtsmiUndo_Click(objectsender,EventArgse){rtxtNotepad.Undo();}//【复制】菜单代码privatevoidtsmiCopy_Click(objectsender,EventArgse){rtxtNotepad.Copy();}//【剪切】菜单代码privatevoidtsmiCut_Click(objectsender,EventArgse){rtxtNotepad.Cut();}//【粘贴】菜单代码privatevoidtsmiPaste_Click(objectsender,EventArgse){rtxtNotepad.Paste();}//【全选】菜单代码privatevoidtsmiSelectAll_Click(objectsender,EventArgse){rtxtNotepad.SelectAll();}//【日期】菜单代码privatevoidtsmiDate_Click(objectsender,EventArgse){rtxtNotepad.AppendText(System.DateTime.Now.ToString());}//【自行换行】菜单代码privatevoidtsmiAuto_Click(objectsender,EventArgse){if(tsmiAuto.Checked==false){tsmiAuto.Checked=true;//选中该菜单项rtxtNotepad.WordWrap=true;//设置为自动换行}else{tsmiAuto.Checked=false;rtxtNotepad.WordWrap=false;}}//【字体】菜单代码privatevoidtsmiFont_Click(objectsender,EventArgse){fdlgNotepad.ShowColor=true;if(fdlgNotepad.ShowDialog()==DialogResult.OK){rtxtNotepad.SelectionColor=fdlgNotepad.Color;rtxtNotepad.SelectionFont=fdlgNotepad.Font;}}//【工具栏】菜单代码privatevoidtsmiToolStrip_Click(objectsender,EventArgse){Pointpoint;if(tsmiToolStrip.Checked==true){point=newPoint(0,25);//隐藏工具栏时,把坐标设为(0,25),因为菜单的高度为24tsmiToolStrip.Checked=false;tlsNotepad.Visible=false;rtxtNotepad.Location=point;//设置多格式文本框左上角的位置rtxtNotepad.Height+=tlsNotepad.Height;//隐藏工具栏后,增加文本框的高度}else{//显示工具栏时,多格式文本框左上角的位置为(0,50),因为工具栏的高度25加上菜单的高度25=50point=newPoint(0,50);tsmiToolStrip.Checked=true;tlsNotepad.Visible=true;rtxtNotepad.Location=point;rtxtNotepad.Height-=tlsNotepad.Height;}}//【状态栏】菜单代码privatevoidtsmiStatusStrip_Click(objectsender,EventArgse){if(tsmiStatusStrip.Checked==true){tsmiStatusStrip.Checked=false;stsNotepad.Visible=false;rtxtNotepad.Height+=stsNotepad.Height;}else{tsmiStatusStrip.Checked=true;stsNotepad.Visible=true;rtxtNotepad.Height-=stsNotepad.Height;}}//【关于记事本】菜单代码privatevoidtsmiAbout_Click(objectsender,EventArgse){frmAboutob_FrmAbout=newfrmAbout();ob_FrmAbout.Show();}privatevoidtlsNotepad_ItemClicked(objectsender,ToolStripItemClickedEventArgse){intn;//变量n用来接收按下按钮的索引号n=tlsNotepad.Items.IndexOf(e.ClickedItem);switch(n){case1:tsmiNew_Click(sender,e);break;case2:tsmiOpen_Click(sender,e);break;case3:tsmiSave_Click(sender,e);break;case4:tsmiCut_Click(sender,e);break;case5:tsmiCopy_Click(sender,e);break;case6:tsmiPaste_Click(sender,e);break;case7:tsmiAbout_Click(sender,e);break;}}//计时器控件代码privatevoidtmrNotepad_Tick(objectsender,EventArgse){tssLbl2.Text=System.DateTime.Now.ToString();}//窗体的sizechanged事件代码(为使得改变窗体大小时,状态栏随之改变)privatevoidfrmNotepad_SizeChanged(objectsender,EventArgse){frmNotepadob_frmNotepad=newfrmNotepad();tssLb
本文标题:用C编写文本编辑器实验报告
链接地址:https://www.777doc.com/doc-2202328 .html