《c#文本文档记事本详细设计代码》由会员分享,可在线阅读,更多相关《c#文本文档记事本详细设计代码(20页珍藏版)》请在金锄头文库上搜索。
1、文本文档的设计说明1 记事本界面设计左侧选择 C#,新建一个 Windows 应用程序,并命名为“Notepad ”。1.1 界面设计新建好“Notepad”项目后,定位到记事本程序的窗体设计器窗口,然后依次在窗体上放置以下控件(各 1 个):(1)MenuStrip(菜单控件) 。(2)ToolStrip(工具栏控件) 。(3)RichTextBox (多格式文本框控件) 。(4)StatusStrip(状态栏控件) 。(5)OpenFileDialog(打开对话框) 。(6)SaveFileDialog(保存对话框) 。(7)FontDialog(字体对话框) 。(8)Timer(计时器控
2、件) 。最终的用户界面如图所示(设置好属性后) ,其中 MenuStrip 控件、ToolStrip 控件、StatusStrip 控件、 OpenFileDialog 对话框、SaveFileDialog 对话框、FontDialog 对话框和Timer 控件显示在窗体设计器下方的组件板上。记事本用户界面2.2 属性设置首先来看一下窗体的属性设置。1. 窗体的属性设置首先在【解决方案资源管理器】中将默认的窗体“Form1.cs”重命名为“frmNotepad.cs”,然后再设置窗体的其他属性,如表 1 所示。表 1 窗体的属性设置控件类型 控件名称 属性 设置结果Name frmNotepa
3、dText 记事本StartPosition CenterScreenForm Form1Size 600, 4502. MenuStrip 的属性设置将菜单控件 MenuStrip 的 Name 属性设为“mnuNotepad ”,它共有【文件(F) 】 、 【编辑(E ) 】 、 【格式(O) 】 、 【查看( V) 】和【帮助(H) 】5 个下拉子菜单,各子菜单如图所示。图 记事本的菜单【文件】菜单用于完成新建、打开、保存文件等功能, 【文件(F) 】菜单的属性设置如表 2 所示。表 2 【文件(F) 】菜单Text 属性 Name 属性 ShortcutKeys 属性 ShowShor
4、tcutKeys 属性文件(&F) mnuFile None 新建(&N) mnuItemNew Ctrl+N True打开(&O) mnuItemOpen Ctrl+O True保存(&S) mnuItemSave Ctrl+S True另存为(&A) mnuItemSaveAs None 分隔符退出(&X) mnuItemClose None 【编辑】菜单用于完成撤销编辑操作、复制、剪切和粘贴等功能, 【编辑(E) 】菜单的属性设置如表 3 所示。表 3 【编辑(E) 】菜单Text 属性 Name 属性 ShortcutKeys 属性 ShowShortcutKeys 属性编辑(&E)
5、mnuEdit None 撤销(&U) mnuItemUndo Ctrl+Z True分隔符复制(&C) mnuItemCopy Ctrl+C True剪切(&T) mnuItemCut Ctrl+X True粘贴(&P) mnuItemPaste Ctrl+V True分隔符全选(&A) mnuItemSelectAll Ctrl+A True日期(&D) mnuItemDate F5 True【格式】菜单用于设置记事本中文本内容的格式,如字体和是否自动换行, 【格式(O) 】菜单的属性设置如表 4 所示。表 4 【格式(O) 】菜单Text 属性 Name 属性 Check 属性格式(&O
6、) mnuFormat False自动换行(&W) mnuItemAuto True字体(&F) mnuItemFont False【查看】菜单用于设置记事本程序界面中是否显示工具栏和状态栏, 【查看(V) 】菜单的属性设置如表 5 所示。表 5 【查看(V) 】菜单Text 属性 Name 属性 Checked 属性查看(&V) mnuView False工具栏(&T) mnuItemToolStrip True状态栏(&S) mnuItemStatusStripTrue【帮助】菜单仅有一个菜单项,用户单击该菜单项弹出一个 Windows 窗体,显示记事本的一些如版本号的相关信息, 【帮助(
7、H ) 】菜单的属性设置如表 6 所示。表 17-6 【帮助(H ) 】菜单Text 属性 Name 属性帮助(&H) mnuHelp关于记事本(&A) mnuItemAbout3. ToolStrip 的属性设置首先将工具栏控件 ToolStrip 的 Name 属性设为“tslNotepad” ,打开其属性窗口,然后单击属性 右边的 按钮,打开【项集合编辑器】 ,在下拉列表中选择默认的【Button】 ,依次添加 9 个 Button 并重命名,再在下拉列表中选择【Separator 】 ,添加两个分隔符,并上移至适当的位置,如图。图【项集合编辑器】对话框从上图中可以看出,一共添加了 9
8、个按钮和 2 个分隔符,设置各子项的属性如表所示。表 7 各子项的属性设置Name 属性 ToolTipText 属性tsbNew 新建tsbOpen 打开tsbSave 保存ToolStripSeparatorA 说明:工具栏中按钮之间的分隔符tsbCopy 复制tsbCut 剪切tsbPaste 粘贴tsbUndo 撤销ToolStripSeparatorB 说明:工具栏中按钮之间的分隔符tsbFont 字体tsbAbout 关于记事本说明:设置工具栏中各子项 ToolTipText 属性的方法为:选中某子项后,拉动右边的滚动条,找到 ToolTipText 属性,修改其文本内容即可。图
9、设置 ToolTipText 属性接下来为工具栏中的按钮设置不同的图片,选择【新建】 (tsbNew)按钮,在右边属性窗口中找到 属性,然后单击右边的 按钮设置为标准的文本新建图标(该图标可以在项目文件夹中的“图标”文件夹中找到) ;按同样的方法设置其他按钮的 Image 属性。说明:因为记事本程序工具栏中使用的按钮都是非常常见的,因此也可以在窗体的工具栏中单击右键(或者在窗体设计器下方的组件板上右键单击 图标) ,然后在弹出的菜单中选择【插入标准项】菜单项,这时可以看到工具栏中添加了一些标准的工具,如图所示。图 标准工具接下来根据程序本身的需要,对添加的标准工具子项进行增加和删除,在设置好各
10、子项的属性即可。4. RichTextBox 的属性设置添加一个 RichTextBox 控件,将控件的大小调整接近窗体的边缘,并将其 Name 属性设为“rtbNotepad” ,Anchor 属性选择“Top,Bottom ,Left ,Right” ,这样当窗体大小改变时,RichTextBox 控件的大小也会跟着改变,如图所示。图 Anchor 属性5. StatusStrip 的属性设置添加 StatusStrip 控件,将其 Name 属性设为“stsStatusStrip ”,将 Dock 属性设为“Bottom”再将 Anchor 属性设为“Bottom,Left,Right
11、”。然后单击右边的 按钮,打开【项集合编辑器】对话框,如图 17-8 所示。图 17-8 【项集合编辑器】窗口下拉列表中保留默认的选择“StatusLabel” ,然后单击【添加】按钮,依次添加 2 个StatusLabel,并分别命名为“tssLbl1”和“tssLbl2 ”,再将 tssLbl1 的 Text 属性设为“就绪” ,tssLbl2 的 Text 属性设为“显示日期、时间” 。6. OpenFileDialog 的属性设置当用户单击记事本的【文件】【打开】菜单项时,使用打开对话框 OpenFileDialog打开文件。OpenFileDialog 控件的 Name 属性为“od
12、lgNotepad” ,Filter 属性设为“文本文件|*.*|C#文件|*.cs| 所有文件|*.* ”。7. SaveFileDialog 的属性设置当用户单击记事本的【文件】【保存】 (或【另存为】 )菜单项时,使用保存对话框SaveFileDialog 保存文件。SaveFileDialog 控件的 Name 属性为 “sdlgNotepad”,FileName属性改为“无标题” ,Filter 属性设为“文本文件(*.txt)|*.txt| 所有文件(*.*)|*.*” 。8. FontDialog 的属性设置当用户单击记事本的【格式】【字体】菜单项时,使用字体对话框 FontDi
13、alog 设置文本字体。FontDialog 控件的 Name 属性为“fdlgNotepad ”。9. Timer 的属性设置本章介绍的记事本在状态栏中显示了时钟,这就需要使用一个 Timer 控件来实现。Timer 控件的 Name 属性设为“tmrNotepad ”,Enabled 属性设为“True” ,Interval 属性设为“1000”,表示 1 秒种触发一次 Tick 事件,即 1 秒钟改变一次时钟。2 编写程序代码首先在代码的通用段声明以下两个公共变量/* 布尔变量 b 用于判断文件是新建的还是从磁盘打开的,true 表示文件是从磁盘打开的,false 表示文件是新建的,默认
14、值为 false*/bool b = false;/* 布尔变量 s 用于判断文件件是否被保存,true 表示文件是已经被保存了,false 表示文件未被保存,默认值为 true*/bool s = true; 2.1 多格式文本框代码private void rtxtNotepad_TextChanged(object sender, EventArgs e)/ 文本被修改后,设置 s 为 false,表示文件未保存s = false;2.2 菜单代码1. 【文件(F ) 】菜单【文件(F) 】菜单的功能是完成文件的新建、打开、保存、另存为功能,以及退出记事本程序,下面对各个菜单项的源代码进
15、行详细的说明。(1) 【新建(N) 】菜单项单击该菜单项时新建一个空白文档,首先应该判断文件是从磁盘打开的还是新建的,若从磁盘打开则将前面定义的变量(b)设为“true” ,否则设为“false ”。这样做可以根据这个变量对文件进行相应的操作。并且每次保存文件后,都要将前面定义的变量(s)设为“true”,表示文件已经被保存。单击新建菜单时,如果当前文件是从磁盘打开的,并且已经过修改,则要按OpenFileDialog 控件的路径来保存文件。如果是新建的文件且内容不为空,则需要用 SaveFileDialog 控件来保存文件, 【新建(N) 】菜单项的代码如下:private void mnu
16、ItemNew_Click(object sender, EventArgs e)if (b = true | rtbNotepad.Text.Trim() != )/ 若文件未保存if (s = false)string result;result = MessageBox.Show(文件尚未保存,是否保存?, 保存文件, MessageBoxButtons.YesNoCancel).ToString();switch (result)case Yes:/ 若文件是从磁盘打开的if (b = true)/ 按文件打开的路径保存文件rtbNotepad.SaveFile(odlgNotepad.FileName, RichTextBoxStreamType.PlainText);/ 若文件不是从磁盘打开的else if (sdlgNotepad.ShowDialog() = DialogResult