您好,欢迎访问三七文档
5.1项目的创建5.2记事本窗体的设计5.3查找窗体的设计5.4替换窗体的设计5.5读者完成部分L5.1项目的创建L5.2记事本窗体的设计L5.3查找窗体的设计1.简单记事本的介绍“简单记事本”的界面如图5.1所示。采用单文档界面(SDI),界面包括菜单栏、工具栏、状态栏以及文本编辑区。功能包括打开文本文件(后缀名为.txt),以及对文本文件的编写、修改、查找和替换功能。图5.1简单记事本界面其中“查找”和“替换”的对话框分别如图5.2和图5.3所示。图5.2“查找”对话框图5.3“替换”对话框2.所要掌握的主要知识点(1)项目的创建。(2)Windows窗体的创建和使用。(3)几种对话框的使用。(4)“ToolStrip”、“ContextMenuStrip”等控件的使用。(5)鼠标事件以及键盘事件。(6)窗体的调用。在前面章节中介绍了Windows窗体的创建,具体步骤在这里就不再详述。此“简单记事本”应用程序包括3个窗体,分别为“记事本窗体(Form1)”、“查找窗体(Form2)”和“替换窗体(Form3)”。创建步骤:1.创建项目运行VS2008,依次执行【文件】→【新建】→【项目】命令,在弹出的“新建项目”对话框中选中“Windows窗体应用程序”模板,选择项目的存放位置并输入项目名称为“TXT”,单击“确定”按钮完成项目的创建。2.添加窗体打开“解决方案资源管理器”窗口,右击项目名“TXT”,依次执行快捷菜单中的“添加”→“新建项”命令,在弹出的“添加新项”对话框中选中“Windows窗体”模板,使用默认名称“Form2”,单击“添加”按钮完成窗体的添加。按照同样的方法添加窗体“Form3”。打开“解决方案资源管理器”窗口,如图5.4所示。图5.4添加完窗体后的“解决方案资源管理器”窗口记事本窗体(Form1)中包括菜单栏、工具栏、文本编辑区和状态栏,如图5.1所示。设计步骤:1.添加控件从工具箱中拖放一些控件和组件到窗体中,所要拖放的控件如表5.1所示。2.窗体和控件属性的设置其他控件属性设置如下所示:(1)menuStrip1属性设置。选中“menuStrip1”,在“请在此处键入”处输入“文件(&F)”,则添加了“文件”菜单项,“&F”是用来定义该菜单项的助记符。按照如图5.5所示分别添加其他菜单项及子菜单项。图5.5(a)文件菜单及子菜单图5.5(b)编辑菜单及子菜单图5.5(c)格式菜单及子菜单图5.5(d)查看菜单及子菜单图5.5(e)帮助菜单及子菜单打开文件菜单中的子菜单项的“新建”属性窗口,设置与菜单项关联的快捷键“ShortcutKeys”属性,如图5.6所示。其他子菜单的快捷键的设置类似。在“格式”菜单的子菜单的“自动换行”属性窗口中,设置“Checked”属性值为“True”。同样,在“查看”菜单的子菜单的“状态栏”属性窗口中,设置“Checked”属性值为“True”。图5.6设置快捷键(2)toolStrip1属性设置。单击“”图标中倒三角按钮,在下拉列表中选择“Button”选项,如图5.7所示,或者直接单击“”图标添加“Button”,在新添加的“Button”属性窗口中设置“Text”属性值为“新建”,选中“Image”属性,单击“”按钮,在弹出的“选择资源”对话框中单击“导入”按钮,如图5.8所示,单击“确定”按钮完成“Image”属性设置。图5.7添加Button图5.8导入资源(3)richTextBox1属性设置。将richTextBox1调整到适当的大小,Anchor属性值设置为“Top,Bottom,Left,Right”,表示绑定到容器的边缘。(4)statuStrip1属性设置。单击“”图标中倒三角按钮,在下拉列表中选择“StatusLabel”选项,如图5.9所示,或者直接单击“”图标添加“StatusLabel”,打开所添加的“toolStripStatusLabel1”属性窗口,其中“Text”属性值设置为空值。图5.9选择状态栏选项(5)contextMenuStrip1属性设置。选中“contextMenuStrip1”,在“请在此处键入”处输入“撤销(&U)”,则添加了“撤销”快捷菜单项,按照同样的方法添加其他快捷菜单项,如图5.10所示。图5.10设计后的快捷菜单(1)添加菜单事件。在Form1的设计视图中依次展开并双击menuStrip1的各个子菜单项,系统自动切换到“Form1.cs”中并添加了相应的“Click”事件及事件处理方法。(2)添加子菜单代码。打开“Form1.cs”文件,添加代码事件代码,代码如下所示。(3)为工具栏添加事件。打开“新建”图标为“”的属性窗口,单击事件图标“”,为“Click”事件选择方法“新建ToolStripMenuItem_Click”。表示当单击“新建”图标时则调用方法“新建ToolStripMenuItem_Click”。按照同样的方法分别为“打开”、“保存”、“剪切”、“复制”、“粘贴”、“查找”和“替换”添加“Click”事件并选择相应的方法。(4)为快捷菜单添加事件。在Form1的设计视图中选中“contextMenuStrip1”,在“撤销”属性窗口中单击“”图标,为“Click”事件选择方法“撤销ToolStripMenuItem_Click”。按照相同的方法分别为“剪切”、“复制”、“粘贴”和“删除”添加“Click”事件并选择相应的方法。(5)为文本编辑区添加事件及代码。在richTextBox1的属性窗口中,单击事件图标“”,分别双击“KeyUp”、“MouseUp”和“TextChanged”,系统切换到“Form1.cs”中并分别添加了相应的事件执行方法,分别表示“在释放键时发生事件”、“鼠标指针在richTextBox1上方并释放鼠标按钮时发生事件”和“更改文本时引发的事件”。这些事件调用同一个方法“place()”用于计算当前鼠标位置并显示在状态栏中。代码如下。4.运行程序按【Ctrl+F5】组合键运行程序,输入文本,如图5.11所示,读者可以自己编辑文本试试此简单的记事本。图5.11简单记事本查找窗体(Form2)用于查找文本中某个字符串,包含区分大小写查找和向上、向下查找功能,如图5.2所示。当前查找的字符颜色设置为红色,查找后的字符颜色设置为蓝色。设计步骤:1.添加控件从工具箱中拖放1个“Label”、1个“TextBox”、1个“GroupBox”、2个“RadioButton”、2个“Button”和1个“CheckBox”控件到窗体中。其中2个“RadioButton”控件放在“GroupBox”控件中。2.窗体和控件属性的设置将窗体Form2调整到适当的大小,打开此窗体的属性窗口,“MaximizeBox”、“MinimizeBox”和“ShowIcon”属性值都设置为“False”,分别表示“取消最大化框”、“取消最小化框”和“窗体的标题栏中取消图标显示”。“Text”属性值设置为“查找”。所添加的控件属性的设置如表5.2所示。3.添加事件及代码分别双击“查找下一个”和“取消”按钮,系统自动切换到“Form2.cs”中并添加了相应的“Click”事件及事件处理方法。添加代码,代码如下所示。4.运行程序打开“Form1.cs”文件,添加弹出“查找”对话框代码,代码如下:privatevoid查找ToolStripMenuItem_Click(objectsender,EventArgse){Form2ff=newForm2();ff.richtextbox=richTextBox1;ff.ShowDialog();}按【Ctrl+F5】组合键运行程序,打开文件,按【Ctrl+F】组合键弹出“查找”对话框,输入查找字符串,单击“查找下一个”按钮,结果如图5.12所示。图5.12查找字符串替换窗体(Form3)用于查找文本中某个字符串,替换或者全部替换某个字符串,如图5.3所示。当前查找的字符颜色设置为红色,查找后的字符颜色设置为蓝色。设计步骤如下:1.添加控件从工具箱中拖放2个“Label”、2个“TextBox”和4个“Button”控件到窗体中。2.窗体和控件属性的设置将窗体Form3调整到适当的大小,打开此窗体的属性窗口,“MaximizeBox”、“MinimizeBox”和“ShowIcon”属性值都设置为“False”。“Text”属性值设置为“替换”。“label1”、“label2”、“button1”、“button2”、“button3”和“button4”的“Text”属性值分别设置为“查找内容:”、“替换内容:”、“查找下一个”、“替换”、“全部替换”和“取消”。3.添加事件及代码分别双击“查找下一个”、“替换”、“全部替换”和“取消”4个按钮,系统自动切换到“Form2.cs”中并添加了相应的“Click”事件及事件处理方法。添加代码,代码如下所示。4.运行程序打开“Form1.cs”文件,添加弹出“替换”对话框代码,代码如下所示:privatevoid替换ToolStripMenuItem_Click(objectsender,EventArgse){Form3fc=newForm3();fc.richText=richTextBox1;fc.ShowDialog();}按【Ctrl+F5】组合键运行程序,打开文件,按【Ctrl+H】组合键弹出“替换”对话框,输入查找字符串,单击“查找下一个”按钮,结果如图5.13所示。图5.13替换字符串(1)添加“撤销”和“重做”菜单工具。图标为“”。(2)添加一个“Timer”控件,利用此控件时刻监测是否选定了文本,如果选定了文本,则“剪切”、“复制”和“删除”子菜单项和快捷菜单项可用,否则不用。(3)添加“覆盖”功能,当覆盖文本中选定的内容时,弹出“覆盖提示”对话框,如图5.14所示。图5.14“覆盖提示”对话框(4)在“替换”窗口中添加区分大小写功能。(5)添加一个窗体,将此应用程序改写为多文档界面(MDI)应用程序。L1.Windows窗体1.Windows窗体的概述Windows窗体提供了定义窗体外观的属性、定义行为的方法和定义与用户交互的事件。通过设置窗体属性和编写代码来响应窗体事件,可以开发满足应用程序需求的窗体。Windows窗体是从Form类派生而来的,而Form类又是从Control类派生而来的,这也决定了其可以继承现有的窗体,来添加功能或修改现有的行为。当为应用程序添加一个Windows窗体时,可以选择从.NET框架提供的Form类继承,也可以选择从先前创建的Windows窗体继承,如在第3章中的【EX3_8】中是继承先前创建的Windows窗体。2.窗体的分类(1)有模式窗体和无模式窗体。有模式窗体和无模式窗体只有在显示的时候才存在差别。有模式窗体就是在打开窗体后,一直保持输入焦点,除非窗体被关闭,否则不能切换到打开有模式窗体的窗体,使用“ShowDialog”方法打开有模式窗体。无模式窗体没有这种限制,可以在各个窗体间任意切换。使用“Show”方法打开无模式窗体。下面代码首先显示有模式窗体,等关闭此窗体后显示无模式窗体。这是因为有模式窗体会中断当前的线程,等待有模式窗体关闭后再向下执行。而无模式窗体会继续执行下面的代码。Form1ff=newForm1();//实例化一个Form1对象ffff.ShowDialog();//显示有模式窗体ff.Show()//显示无模式窗体(2)SDI窗体和MDI窗体。SDI窗体指的是在某一时刻,程序只能激活一个窗体。如图5.15所示,当单击“窗体一”上的“显示窗体二”按钮后,弹出“窗体二”窗体,此时窗体一变灰,处于非激活状态,窗体二处于激活状态。图5.15SDI窗体MDI窗体是指一个包含多个子窗体的父窗体,如图5.16所示。MDI窗体允许同时显示多个子窗体,当父窗体最小化时,所有的子窗体也都被最小
本文标题:记事本的设计
链接地址:https://www.777doc.com/doc-4694218 .html