C#记事本小程序实验报告解读_第1页
C#记事本小程序实验报告解读_第2页
C#记事本小程序实验报告解读_第3页
C#记事本小程序实验报告解读_第4页
C#记事本小程序实验报告解读_第5页
已阅读5页,还剩37页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、洛阳理工学院实验报告系别计算机与信息工程系班级学号姓名课程名称C#面向对象程序设计实验日期实验名称综合实验,记事本成绩实验目的:掌握使用面向对象技术进行程序设计的基本思想,熟悉Windows应用程序开发的基本方法和步骤。实验条件:装有VS2010的微机一台。实验内容:内容:设计一个windows应用程序,要求1)至少设计二个类,并復盖面向对象的继承、多态等基本特性;2)需使用到Editbox、Combobox等常用Windows控件;3)至少设计一个接口及接口支持类;4)最好使用到GDI+技术或者数据库编程技术。建议题目:(1)图书管理系统:能够实现添加新书、修改和删除图书信息,借出操作等;支

2、持按书号精确查询图书信息、按书名模糊查询图书信息等。(2)记事本:能够实现文件新建、保存、打开等操作;支持字体样式设置;支持文字查找和替换等编辑功能。(3)绘图板:能够实现直线、多边形、圆等几何图形绘制操作;支持图形文件保存;支持几何图形的选取、复制和移动等操作。一、程序主要用到的控件有:1、RichTextBox控件的主要属性属性SelectedText、SelectionLength、SelectionStart:属性SelectionFont:属性SelectionColor:属性Lines:属性Modified:事件SelectionChange:事件TextChanged:2、Ric

3、hTextBox控件的主要方法方法Clear():方法Copy()、Cut()、Paste():方法SelectAll():方法Find():方法SaveFile()和LoadFile():方法Undo():方法Redo():二、功能设计与实现1、剪贴板功能放RichTextBox控件到窗体。属性Name=richTextBoxl,Dock=Fill,Text=。privatevoidmenuItemEditCut_Click(objectsender,EventArgse)richTextBox1.Cut();剪切privatevoidmenuItemEditCopy_Click(objec

4、tsender,EventArgse)richTextBox1.Copy();拷贝privatevoidmenuItemEditPaste_Click(objectsender,EventArgse)richTextBox1.Paste();粘贴privatevoidmenuItemEditUndo_Click(objectsender,EventArgse)richTextBox1.Undo();撤销privatevoidmenuItemEditRedo_Click(objectsender,EventArgse)richTextBox1.Redo();恢复2、存取文件功能文本编辑器都应具有

5、文件存取功能,菜单顶级菜单项“文件”的弹出菜单中一般包括如下菜单项:新建、打开、关闭、保存和另存为等。需要用到打开文件对话框(OpenFileDialog控件)和保存文件对话框(SaveFileDialog控件)。和两个对话框的常用属性和方法:属性Filter:例如Filter=“纯文本文件(*.txt)l*.txt所有文件(*.*)|*.*”属性FilterIndex:属性FileName:属性InitialDirectory:属性DefaultExt:方法ShowDialog():三、程序主窗体预览:四、源程序:1、主窗体代码:usingSystem;usingSystem.Collect

6、ions.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Windows.Forms;usingSystem.IO;namespace记事本publicpartialclassMainForm:Form#region初始化全局变量/vsummary摘要/定义全局变量/v/summaryboolnewnote=true;/是否新建文档boolopenfile=true;/是否为打开的打开文件,true表示为打开

7、的文件,否则表示新编辑的文件boolsavefile=true;/是否保存文件boolIsSaved=false;标示符表示文本已经被保存过,true表示已保存,false表示未保存stringFilename=null;/用于保存当前文本的文件名boolIsnewnote=false;/是否为新建文档boolIsclose=false;/是否关闭程序标示符introw=1;显示光标所在行号intcol=1;显示光标所在列号#endregion#region初始化主窗体publicMainForm()InitializeComponent();初始化窗体openfile=false;菜单栏选项

8、撤销.Enabled=false;剪切.Enabled=false;复制.Enabled=false;粘贴.Enabled=true;删除.Enabled=false;全选.Enabled=false;查找ToolStripMenuItem.Enabled=false;鼠标点击菜单选项撤销l.Enabled=false;剪切1.Enabled=false;复制1.Enabled=false;粘贴1.Enabled=true;删除1.Enabled=false;全选1.Enabled=false;字体1.Enabled=false;颜色1.Enabled=false;#endregion#reg

9、ion窗体载入时privatevoidForm1_Load(objectsender,EventArgse)this.状态栏ToolStripMenuItem.Checked=true;this.toolStripStatusLabell.Text=正在执行:文本读写操作;this.toolStripStatusLabel2.Text=当前文档计数:+richTextBoxl.Text.Length;this.toolStripStatusLabel3.Text=|;this.toolStripStatusLabel4.Text=光标所在:+第+row+行第+col+列timer1.Start

10、();#endregion#region菜单栏-文件-新建/vsummary摘要/设置新建选项,如果已有文本在文本框中,则需要先提示用户进行保存/v/summary/vparamname=senderx/param/vparamname=ev/paramprivatevoid新建_Click(objectsender,EventArgse)tryif(newnote)如果文本未保存,或者被修改,则在新建前应该提醒用户保存if(richTextBoxl.Modified)DialogResultdialg=MessageBox.Show(”文件已被修改是否要保存?,保存文件,MessageBox

11、Buttons.YesNoCancel,MessageBoxIcon.Question);switch(dialg)caseDialogResult.Yes:另存为_Click(sender,e);richTextBoxl.Clear();IsSaved=false;Isnewnote=true;表示此时文本为新建文本this.Text=新建-记事本;break;caseDialogResult.No:richTextBox1.Clear();IsSaved=false;Isnewnote=true;表示此时文本为新建文本this.Text=新建-记事本;break;catch(System.

12、Exceptionex)MessageBox.Show(ex.Message);#endregion#region菜单栏-文件-打开/vsummary摘要/想要实现打开文件功能,要注意的一点就是,在打开文件的时候一定要指定解码方式/不然会出现中文乱码现象/v/summaryC#默认解码方式为unicode方式,而中文为gb2312,因此必须指定其中文的解码方式/vparamname=senderx/param/vparamname=ev/paramprivatevoid打开_Click(objectsender,EventArgse)try如果文本框为空或者没有修改则执行以下代码if(rich

13、TextBox1.Modified=false)openFileDialogl.Title=打开;openFileDialogl.Filter=文本文件(*.txt)l*.txtlC#程序文件(*.cs)l*.cslWord文档(*.doc)l*.docl所有文件(*.*)|*.*;指定所能打开的文件格式openFileDialogl.FileName=无标题;openFileDialogl.AddExtension=true;/如果用户省略扩展名,将自动添加扩展名if(openFileDialog1.ShowDialog()=DialogResult.OK)StreamReadersr=ne

14、wStreamReader(openFileDialog1.FileName,System.Text.Encoding.Default);richTextBox1.Text=sr.ReadToEnd();从流的当前位置到流的结束位置this.Text=openFileDialog1.SafeFileName+-记事本;sr.Close();Filename=openFileDialog1.FileName;richTextBox1.Modified=false;/将文本框标示符重置openfile=true;重置标识符IsSaved=true;elseif(richTextBox1.Modif

15、ied)DialogResultr=MessageBox.Show(”是否将更改保存到无标题?,”无标题”,MessageBoxButtons.YesNoCancel,MessageBoxIcon.Question);intg=(int)r;当g为6时表示选择的是“是”为7是选择的是“否”if(g=6)if(openfile=false)保存Click(sender,e);elseif(openfile)saveFileDialogl.FileName=Filename;richTextBoxl.SaveFile(saveFileDialogl.FileName,RichTextBoxStre

16、amType.PlainText);/if(saveFileDialog1.ShowDialog()=DialogResult.OK)openFileDialog1.Title=打开;openFileDialog1.Filter=文本文件(*.txt)l*.txtlC#程序文件(*.cs)l*.cslWord文档(*.doc)|*.doc|所有文件(*.*)|*.*;指定所能打开的文件格式openFileDialog1.FileName=无标题;openFileDialog1.AddExtension=true;/如果用户省略扩展名,则自动添加扩展名if(openFileDialog1.Sho

17、wDialog()=DialogResult.OK)StreamReadersr=newStreamReader(Filename,Encoding.Default);richTextBoxl.Text=sr.ReadToEnd();从流的当前位置到流的结束位置this.Text=openFileDialogl.SafeFileNames+记事本;标题栏中显示打开的文件信息,包括文件名及其扩展名sr.Close();Filename=openFileDialog1.FileName;/elseif(g=7)表示选择的是“否”openFileDialog1.Title=打开;openFileDi

18、alog1.Filter=文本文件(*.txt)l*.txtlC#程序文件(*.cs)l*.cslWord文档(*.doc)|*.doc|所有文件(*.*)|*.*;指定所能打开的文件格式openFileDialog1.FileName=无标题;openFileDialog1.AddExtension=true;if(openFileDialog1.ShowDialog()=DialogResult.OK)StreamReadersr=newStreamReader(openFileDialog1.FileName,Encoding.Default);这里一定要指定解码的方式为,不然会出现中文

19、乱码情况richTextBox1.Text=sr.ReadToEnd();从流的当前位置到流的结束位置this.Text=openFileDialogl.SafeFileName+无标题;sr.Close();Filename=openFileDialogl.FileName;elsereturn;catch(System.Exceptionp)MessageBox.Show(p.Message);#endregion#region菜单栏-文件-保存/vsummary摘要III实现文件保存功能,在进行保存的时候一定要指定中文编码为ANSI格式/否则系统默认为Unicode格式,RichText

20、BoxStreamType.PlainText可以保证保存的文本为指定类型/v/summary/vparamname=senderx/param/vparamname=ev/paramprivatevoid保存_Click(objectsender,EventArgse)try如果要保存文件不是新建文件,则执行保存功能if(savefile&Isnewnote=false)if(IsSaved!=true)saveFileDialogl.FileName=*.txt;saveFileDialogl.Title=保存;saveFileDialog1.Filter=文本文件(*.txt)l*.tx

21、tI所有文件(*.*)|*.*;saveFileDialog1.RestoreDirectory=true;elsesaveFileDialog1.FileName=Filename;if(!IsSaved&saveFileDialog1.ShowDialog()=DialogResult.OK)StreamWritersw=newStreamWriter(saveFileDialog1.FileName,false,Encoding.Default);sw.WriteLine(richTextBoxl.Text);sw.Flush();清除缓存sw.Close();保存后关闭对话框Filen

22、ame=saveFileDialogl.FileName;保存当前文件保存路径IsSaved=true;表示文件已被保存this.Save.Enabled=false;Isclose=false;如果对已保存过文件修改后保存,则执行以下代码,保存并覆盖原来文elseif(IsSaved=true)/RichTextBoxStreamType.PlainText可以将保存的文件指定类型richTextBox1.SaveFile(saveFileDialog1.FileName,RichTextBoxStreamType.PlainText);IsSaved=true;表示文件已被保存Isclos

23、e=false;this.Save.Enabled=false;elseIsclose=true;如果当前文本为新建文本,则执行另存为功能elseif(IsSaved=false&Isnewnote=true)另存为_Click(sender,e);catch(System.Exceptionex)MessageBox.Show(ex.Message);finallyrichTextBoxl.Modified=false;/将文本框的标示符改为false,表示未被修改#endregion#region菜单栏-文件-另存为/vsummary摘要/如果想将文本保存到其他路径,则可以执行以下代码/v

24、paramname=ex/paramprivatevoid另存为_Click(objectsender,EventArgse)trysaveFileDialogl.Title=另存为;saveFileDialogl.FileName=*.txt;saveFileDialog1.Filter=文本文件(*.txt)l*.txt所有文件(*.*)|*.*;saveFileDialog1.RestoreDirectory=true;if(saveFileDialog1.ShowDialog()=DialogResult.OK)sw=newStreamWriterStreamWriter(saveFi

25、leDialog1.FileName,false,Encoding.Default);sw.Write(richTextBox1.Text);sw.Close();保存后关闭对话框IsSaved=true;/表示文档已被保存elseIsclose=true;catch(System.Exceptionex)MessageBox.Show(ex.Message);#endregion#region菜单栏-文件-退出/vsummary摘要/退出功能,要注意的是,当用户要退出程序时,如果还有文本没有保存/则应当提醒用户保存/v/summary/vparamname=senderx/param/vpa

26、ramname=ev/paramprivatevoid退出_Click(objectsender,EventArgse)if(richTextBoxl.Modified=false)this.Close();elseif(richTextBox1.Modified)DialogResultdialg=MessageBox.Show(是否将改动保存?,”提醒,MessageBoxButtons.YesNoCancel,MessageBoxIcon.Question);switch(dialg)privatevoid复制_Click(objectsender,EventArgse)richText

27、Boxl.Copy();#endregion#region菜单栏-编辑-粘贴privatevoid粘贝占_Click(objectsender,EventArgse)richTextBox1.Paste();#endregion#region菜单栏-编辑-删除privatevoid删除_Click(objectsender,EventArgse)richTextBox1.SelectedText=;#endregion#region菜单栏-编辑-全选privatevoid全选_Click(objectsender,EventArgse)richTextBox1.SelectAll();#end

28、region#region菜单栏-编辑-查找privatevoid查找ToolStripMenuItem_Click(objectsender,EventArgse)Searchfrmsearch=newSearchfrm();search.Show(this);#endregion#region菜单栏-编辑-替换privatevoid替换ToolStripMenuItem_Click(objectsender,EventArgse)Replacefrmreplace=newReplacefrm();replace.rtb=this.richTextBoxl;传值,从主窗体传到替换窗体repl

29、ace.Show(this);#endregion#region当文本框内容改变时实时监测文本框内容改变,当文本框的内容被修改时执行以下代码privatevoidrichTextBox1_TextChanged(objectsender,EventArgse)richTextBox1.Modified=true;/modified为true时表示文本已被修改Save.Enabled=true;this.toolStripStatusLabel2.Text=当前文档计数:+richTextBox1.Text.Length;撤销.Enabled=true;if(richTextBoxl.Text!

30、=)全选.Enabled=true;菜单栏标识符重置全选1.Enabled=true;鼠标点击菜单标识符重置else全选.Enabled=false;全选1.Enabled=false;查找ToolStripMenuItem.Enabled=true;#endregion#region菜单栏-格式-自动换行privatevoid自动换行ToolStripMenuItem_Click(objectsender,EventArgse)if(this.自动换行ToolStripMenuItem.Checked=false)this.自动换行ToolStripMenuItem.Checked=true

31、;this.richTextBox1.WordWrap=true;elsethis.自动换行ToolStripMenuItem.Checked=false;this.richTextBoxl.WordWrap=false;#endregion#region菜单栏-格式-字体privatevoid字体ToolStripMenuItem_Click(objectsender,EventArgse)if(richTextBox1.SelectedText=”)MessageBox.ShowC请先选择想要改变字体的文本!);return;this.fontDialog1.ShowEffects=tru

32、e;this.fontDialog1.Font=this.richTextBox1.SelectionFont;if(this.fontDialog1.ShowDialog()=DialogResult.OK)this.richTextBox1.SelectionFont=this.fontDialog1.Font;#endregion#region菜单栏-格式-颜色privatevoid颜色ToolStripMenuItem_Click(objectsender,EventArgse)this.colorDialogl.AnyColor=true;this.colorDialogl.Colo

33、r=this.richTextBoxl.SelectionColor;if(this.colorDialog1.ShowDialog()=DialogResult.OK)this.richTextBox1.SelectionColor=this.colorDialog1.Color;#endregion#region菜单栏-格式-背景颜色privatevoid背景颜色ToolStripMenuItem_Click(objectsender,EventArgse)if(this.colorDialog1.ShowDialog()=DialogResult.OK)this.richTextBox1

34、.BackColor=this.colorDialog1.Color;#endregion#region菜单栏-查看privatevoid状态栏ToolStripMenuItem_Click(objectsender,EventArgse)if(this.状态栏ToolStripMenuItem.Checked=false)this.状态栏ToolStripMenuItem.Checked=true;this.statusStripl.Visible=true;this.richTextBoxl.Height-=22;elsethis.状态栏ToolStripMenuItem.Checked=false;this.statusStrip1.Visible=false;this.richTextBox1.Height+=22;#endregion#region当选定文本发生改变时private

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论