ImageVerifierCode 换一换
格式:DOCX , 页数:34 ,大小:402.21KB ,
资源ID:9107037      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9107037.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(制作记事本全.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

制作记事本全.docx

1、制作记事本全记事本实验本实验介绍如何使用 Visual C# 2008设计一个Windows应用程序记事本,通过本章 的学习,可以进一步掌握 MenuStrip (菜单)、ToolStrip (工具栏)、RichTextBox (高级文本 框)和StatusStrip (状态栏控件)等控件的使用,以及如何使用 Com mon Dialog (公共对话框)实现对文本的存取、格式设置等操作。1.1记事本简介记事本是一种常用的软件, 在微软的 Windows中,自带了一个记事本软件, Windows XP下的记事本软件如图 1-1所示。图1-1 Windows自带的记事本本章介绍的记事本,实现了 W

2、indows自带的记事本的部分功能外,并且还可以任意更改字体的字体类型、 大小和颜色,并在状态栏中显示时间。为了方便用户的操作, 还在程序的窗体上放置了一个工具栏。本章介绍的记事本程序具有文件的新建、打开、保存功能;文字的复制、粘贴、删除功能;字体类型、格式的设置功能;查看日期时间等功能, 并且用户可以根据需要显示或者隐藏工具栏和状态栏。接下来将详细的介绍记事本程序的设计与实现的步骤和方法。1.2记事本界面设计新建一个 Windows应用程序,并命名为Notepad ”。本节介绍记事本程序的界面设计 以及界面上各控件的属性设置。1.2.1 界面设计新建好Notepad”项目后,定位到记事本程序

3、的窗体设计器窗口,然后依次在窗体上 放置以下控件(各 1个):(1) MenuStrip (菜单控件)。(2) ToolStrip (工具栏控件)。(3) RichTextBox (多格式文本框控件)。(4) StatusStrip (状态栏控件)。(5) OpenFileDialog (打开对话框)。(6) SaveFileDialog (保存对话框)。(7) FontDialog (字体对话框)。(8) Timer (计时器控件)。I-士 tlsifQtepadodlgNo tEp/d最终的用户界面如图 1-2所示(设置好属性后),其中MenuStrip控件、ToolStrip控件、 St

4、atusStrip 控件、OpenFileDialog 对话框、SaveFileDialog 对话框、FontDialog 对话框和 Timer 控件显示在窗体设计器下方的组件板上。 trnrHotepad图1-2 记事本用户界面1.2.2属性设置本小节将介绍窗体、菜单控件、工具栏控件、多格式文本框控件和状态栏控件的属性设置,下面首先来看一下窗体的属性设置。1.窗体的属性设置首先在【解决方案资源管理器】 中将默认的窗体Form1.cs”重命名为“frmNotepad.cs”,然后再设置窗体的其他属性,如表 1-1所示。表1-1窗体的属性设置控件类型控件名称属性设置结果FormForm1Name

5、frmNotepadText记事本StartPositionCen terScree nSize600, 4502.Me nuStrip的属性设置将菜单控件 MenuStrip的Name属性设为mnusNotepad”,按照第6章介绍的方法设计 好下拉菜单,它共有【文件(F )】、【编辑(巳】、【格式(0)】、【查看(V )】和【帮助(H )】 5个下拉子菜单,各子菜单如图 1-3所示。文件迫I格式1萱若(Y)蔚建Ctrl+N磁销辿CLfl+E自动按行工具港辽)关于记爭本打开1 Ctrl+O复制Ctrl+C宇怖的磁栏保存庠)Ctrl+S独切)Clrl+I栩占Ctrl+V退出全选型Ctrl+A日

6、期) F5图1-3 记事本的菜单下面用表格的形式给出各子菜单及其菜单项的属性设置。 【文件】菜单用于完成新建、打开、保存文件等功能,【文件(F)】菜单的属性设置如表 1-2所示。表1-2【文件(F )】菜单Text属性Name属性ShortcutKeys 属性ShowShortcutKeys 属性文件(&F)tsmiFileNo ne一新建(&N)tsmiNewCtrl+NTrue打开(&O)tsmiOpe nCtrl+OTrue保存(&S)tsmiSaveCtrl+STrue另存为(&A)tsmiSaveAsNo ne一分隔符退出(&X)tsmiCloseNo ne一【编辑】菜单用于完成撤销

7、编辑操作、复制、剪切和粘贴等功能, 【编辑(E)】菜单的属性设置如表1-3所示。表1-3【编辑(E)】菜单Text属性Name属性ShortcutKeys 属性ShowShortcutKeys 属性编辑(&E)tsmiEditNo ne一撤销(&U)tsmiU ndoCtrl+ZTrue分隔符复制(&C)tsmiCopyCtrl+CTrue剪切(&T)tsmiCutCtrl+XTrue粘贴(&P)tsmiPasteCtrl+VTrue分隔符全选(&A)tsmiSelectAllCtrl+ATrue日期(&D)tsmiDateF5True【编辑】菜单用于设置记事本中文本内容的格式, 如字体和是否

8、自动换行,【格式(0)】菜单的属性设置如表 1-4所示。表1-4【格式(0)菜单Text属性Name属性Check属性格式(&O)tsmiFormatFalse自动换行(&W)tsmiAutoTrue字体(&F)tsmiF ontFalse【编辑】菜单用于设置记事本程序界面中是否显示工具栏和状态栏, 【查看(V)】菜单的属性设置如表1-5所示。表1-5【查看(V )】菜单Text属性Name属性Checked 属性查看(&V)tsmiViewFalse工具栏(&T)tsmiToolStripTrue状态栏(&S)tsmiStatusStripTrue本章介绍的记事本操作比较简单,因此没有设计详

9、细的帮助文档, 【帮助】菜单仅有个菜单项,用户单击该菜单项弹出一个 Windows窗体,显示记事本的一些如版本号的相关 信息,【帮助(H )】菜单的属性设置如表 1-6所示。表1-6【帮助(H )】菜单Text属性Name属性帮助(&H)tsmiHelp关于记事本(&A)tsmiAbout3.ToolStrip的属性设置击属性mn*1 右边的丽按钮,打开【项集合编辑器】,在下拉列表中选择首先将工具栏控件 ToolStrip的Name属性设为“ tlsNotepad ”,打开其属性窗口,然后单默认的【Button】,依次添加9个Button并重命名,再在下拉列表中选择【 Separator,添加

10、两个分隔符,并上移至适当的位置,按照表 1-2所示的信息设置好各子项的属性后,如图1-4所示。Button. v舔加成员(1):r| tlsNotepadttsbEew+ UbOptntsbSaveTo&1S tripSp*r htcrA tsbCopy g| tsbCittEbFaste tsbUndoT a olS ipSepar at orBX回 tsbFonttsbAbout选择项并涼加到以下列表煜):T4*lStrip tliNottptidHHn .确定取消图1-4 【项集合编辑器】对话框从上图中可以看出, 一共添加了 9个按钮和2个分隔符,设置各子项的属性如表 1-7所示。表1-

11、7各子项的属性设置Name属性ToolTipText 属性tsbNew新建tsbOpe n打开tsbSave保存ToolStripSeparatorA说明:工具栏中按钮之间的分隔符tsbCopy复制tsbCut剪切tsbPaste粘贴tsbU ndo撤销ToolStripSeparatorB说明:工具栏中按钮之间的分隔符tsbF ont字体tsbAbout关于记事本说明:设置工具栏中各子项 ToolTipText属性的方法为:选中某子项后,拉动右边的滚动条,找到ToolTipText属性,修改其文本内容即可,如图 1-5所示。图1-5 设置ToolTipText属性窗口中找到IImage:=

12、属性,然后单击右边的匚I按钮设置;按同样的接下来为工具栏中的按钮设置不同的图片,选择【新建】 (tsbNew)按钮,在右边属性为标准的文本新建图标(该图标可以在项目文件夹中的“图标”文件夹中找到) 方法设置其他按钮的Image属性,效果如图1-2所示。因此也可以在窗体的工具说明:因为记事本程序工具栏中使用的按钮都是非常常见的,栏中单击右键(或者在窗体设计器下方的组件板上右键单击 -图标),然后在弹出的菜单中选择 【插入标准项】 菜单项,这时可以看到工具栏中添加了一些标准的工具,如 图1-6所示。图1-6 标准工具接下来根据程序本身的需要,对添加的标准工具子项进行增加和删除, 在设置好各子项的属

13、性即可。4.RichTextBox 的属性设置添加一个RichTextBox控件,将控件的大小调整接近窗体的边缘,并将其 Name属性设 为“ rtxtNotepad ”,Anchor属性选择“ Top, Bottom, Left,Right ”,这样当窗体大小改变时, RichTextBox控件的大小也会跟着改变,如图 1-7所示。Tep# Bot toBj Ki ght1 11 1图1-7 Anchor属性5.StatusStrip 的属性设置6.添加StatusStrip控件,将其 Name属性设为stsNotepad”,将Dock属性设为Bottom7.Ope nFileDialog

14、的属性设置当用户单击记事本的【文件】t【打开】菜单项时,使用打开对话框 Ope nFileDialog打开文件。OpenFileDialog控件的Name属性为“ odlgNotepad ”,Filter属性设为“ RTF文件 |*.rtf| 所有文件 |*.* ”。8.SaveFileDialog 的属性设置当用户单击记事本的【文件】t【保存】 (或【另存为】)菜单项时,使用保存对话框SaveFileDialog 保存文件。SaveFileDialog 控件的 Name 属性为“ sdlgNotepad”,FileName 属 性改为“无标题” ,Filter属性设为“ RTF文件|*.rt

15、f”。9.Fo ntDialog 的属性设置FontDialog 设置当用户单击记事本的【格式】t【字体】菜单项时,使用字体对话框文本字体。FontDialog控件的Name属性为fdlgNotepad ”。10.Timer的属性设置本章介绍的记事本在状态栏中显示了时钟, 这就需要使用一个 Timer控件来实现。Timer控件的 Name 属性设为 “ tmrNotepad ”,En abled 属性设为 “ True ”,I nterval 属性设为 “ 1000”, 表示1秒种触发一次Tick事件,即1秒钟改变一次时钟。设置好所有的属性后,最终的用户界面如图 1-2所示。到此,用户界面设计

16、完毕,接下来介绍具体的实现过程及源代码的编写。1.3编写程序代码首先在代码的通用段声明以下两个公共变量, 他们都是布尔型的,“b”用于判断文件是新建的还是从磁盘打开的, “ s”用于判断文件是否被保存。*/*布尔变量b用于判断文件是新建的还是从磁盘打开的,true表示文件是从磁盘打开的, false表示文件是新建的,默认值为 false*/bool b = false;/*布尔变量s用于判断文件件是否被保存,true表示文件是已经被保存了, false表示文件未被保存,默认值为 true*/bool s = true;*接下来介绍多格式文本框(rtxtNotepad )、菜单(mnusNote

17、pad )、工具栏(tlsNotepad )、 计时器(tmrNotepad)对象的程序代码。1.3.1 多格式文本框代码当多格式文本框中的文本发生改变后,应当设置布尔变量“ s”的值为false,表示文件未保存,因此编写多格式文本框的 TextChanged事件代码如下:*II多格式文本框的TextChanged事件代码*private void rtxtNotepad_TextCha nged(object sen der, Even tArgs e) II文本被修改后,设置 s为false,表示文件未保存s = false;*1.3.2 菜单代码在本章介绍的记事本程序中, 几乎所有的功能

18、都是通过菜单来实现的, 本小节将介绍各 菜单项的单击事件代码,1.【文件(F )】菜单【文件(F)】菜单的功能是完成文件的新建、打开、保存、另存为功能,以及退出记 事本程序,下面对各个菜单项的源代码进行详细的说明。(1)【新建(N )】菜单项单击该菜单项时新建一个空白文档, 首先应该判断文件是从磁盘打开的还是新建的, 若从磁盘打开则将前面定义的变量( b)设为“ true”,否则设为“false”。这样做可以根据这个 变量对文件进行相应的操作。 并且每次保存文件后, 都要将前面定义的变量 (s)设为“true”,表示文件已经被保存。单击新建菜单时,如果当前文件是从磁盘打开的,并且已经过修改,则

19、要按 Ope nF ileDialog控件的路径来保存文件。如果是新建的文件且内容不为空, 则需要用SaveFileDialog控件来保存文件,【新建(N)】菜单项的代码如下:*/【新建】菜单代码*private void tsmiNew_Click(object sen der, Even tArgs e)/判断当前文件是否从磁盘打开,或者新建时文档不为空,并且文件未被保存if (b = true | rtxtNotepad.Text.Trim() !=) /若文件未保存if (s = false)stri ng result;result = MessageBox.Show(”文件尚未保存

20、,是否保存?,保存文件, MessageBoxButtons.YesNoCancel).ToString();switch (result) case Yes:/若文件是从磁盘打开的if (b = true) /按文件打开的路径保存文件 rtxtNotepad.SaveFile(odlgNotepad.FileName);/若文件不是从磁盘打开的else if (sdlgNotepad.ShowDialog() = DialogResult.OK)rtxtNotepad.SaveFile(sdlgNotepad.FileName);s = true;rtxtNotepad.Text =;bre

21、ak;case No:b = false;rtxtNotepad.Text =;break;*(2)【打开(O)】菜单项单击该菜单项时,如果是要从磁盘或其他设备打开“ *.rtf ”文件,同样要作出判断,所不同的是判断后用 Ope nF ileDialog控件打开文件,并且每次保存文件后, 都要将前面定义的 变量(s)设为“ true”,表示文件已经被保存。代码如下:*/【打开】菜单代码*private void tsmiOpe n_Click(object sen der, Even tArgs e)if (b = true | rtxtNotepad.Text.Trim() !=)if (

22、s = false)stri ng result;result = MessageBox.Show(”文件尚未保存,是否保存?,保存文件, MessageBoxButtons.YesNoCancel).ToString();switch (result)case Yes:if (b = true)rtxtNotepad.SaveFile(odlgNotepad.FileName);else if (sdlgNotepad.ShowDialog() = DialogResult.OK)rtxtNotepad.SaveFile(sdlgNotepad.FileName);s = true;brea

23、k;case No:b = false;rtxtNotepad.Text =;break;odlgNotepad.RestoreDirectory = true;if (odlgNotepad.ShowDialog() = DialogResult.OK) & odlgNotepad.FileName !=) rtxtNotepad.LoadFile(odlgNotepad.FileName);b = true;s = true;*(3)【保存(S)】菜单项单击此菜单项保存文本框的内容, 需要判断该文件是从磁盘打开还是新建的, 如果是从磁盘打开的,则要判断是否有更改, 只有有更改时才进行保存操

24、作,否则不作任何处理。如果是新建的文档就调用 SaveFileDialog控件保存文件,然后把 bool变量b改为true”,同时把SaveFileDialog控件的文件路径赋给 Ope nF ileDialog控件,这样下次打开文件时,文件路径默认为刚刚保存文件的路径,并且每次保存文件后,都要将前面定义的变量( s)设为“true”,表示文件已经被保存。代码如下:*/【保存】菜单代码*private void tsmiSave_Click(object sen der, Even tArgs e)/若文件从磁盘打开并且修改了其内容if (b = true & rtxtNotepad.Modified = true)rtxtNotepad.SaveFile(odlgNotepad.FileName);s = true;else if (b = false & rtxtNotepad.Text.Trim() != &sdlgNotepad.ShowDialog() = DialogResult.OK)rtxtNotepad.SaveFile(sdlgNotepad.FileName);s = true;b = true;odlgNotepad.FileName = sdlgNotepad.FileName;*(4)【另存为(A )

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1