您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 51CTO-文本编辑器的设计与实现
文本编辑器的设计与实现第1/18页文本编辑器的设计与实现简介本讲涉及的控件有:菜单、工具条、状态栏、分页控件、系统对话框(打开对话框、保存对话框、预览对话框、打印对话框、打印设置对话框、颜色对话框、字体对话框)、用户自定义对话框等、查找与替换等。1功能设计1.1文件新建:新建一个编辑窗口;打开:弹出打开对话框,打开一个指定的文本文件;保存:如果当前有文件名,就保存当前编辑的文本文件,如果没有文件名,弹出保存对话框,保存当前编辑的文本文件;另存为:弹出保存对话框,将当前编辑的文本文件以指定的另一个文件名存盘;退出:结束当前编辑的文本文件,退出系统。1.2编辑剪切:剪切选定内容,并放到剪切板;复制:复制选定内容,并放到剪切板;粘贴:将剪切板的内容插入到当前位置;撤消:撤消上次操作;恢复:恢复上次操作;查找:查找指定文本内容;替换:替换指定文本内容。1.3格式字体:弹出字体对话框,设置选定文本的字体;颜色:弹出颜色对话框,设置选定文本的颜色;左对齐:当前段文本左对齐;中对齐:当前段文本中对齐;右对齐:当前段文本右对齐;缩进:当前段文本悬挂缩进。1.4打印预览:预览编辑器中的内容;打印:打印编辑器中的内容;打印机设置:设置默认打印机;页面设置:设置打印页面。文本编辑器的设计与实现第2/18页2功能实现2.1建立项目解决方案(EditorSln),项目名称(Editor),窗体文件(frmEditor);测试结果:2.2设计窗体控件属性属性值说明FormNamefrmEditorText文本文件编辑器Font宋体,五号StartPositionCenterScreenMenuStripNamemsEditor菜单条ToolStripMenuItemNamemnFile文件菜单Text文件ToolStripMenuItemNamemiFileNewText新建ToolStripMenuItemNamemiFileOpenText打开...ToolStripMenuItemNamemiFileSaveText保存ToolStripMenuItemNamemiFileSaveAsText另存为...ToolStripMenuItemNamemiFileExitText退出ToolStripMenuItemNamemnEdit编辑菜单Text编辑文本编辑器的设计与实现第3/18页ToolStripMenuItemNamemiEditCutText剪切ToolStripMenuItemNamemiEditCopyText复制ToolStripMenuItemNamemiEditPasteText粘贴ToolStripMenuItemNamemiEditUnDoText撤消ToolStripMenuItemNamemiEditReDoText恢复ToolStripMenuItemNamemiEditFindText查找...ToolStripMenuItemNamemiEditReplaceText替换...ToolStripMenuItemNamemnStyle格式菜单Text格式ToolStripMenuItemNamemiStyleFontText字体...ToolStripMenuItemNamemiStyleColorText颜色...ToolStripMenuItemNamemiStyleAlignLeftText左对齐ToolStripMenuItemNamemiStyleAlignCenterText中对齐ToolStripMenuItemNamemiStyleAlignRightText右对齐ToolStripMenuItemNamemiStyleIndentText缩进ToolStripMenuItemNamemnPrint打印菜单Text打印ToolStripMenuItemNamemiPrintPreviewText预览...ToolStripMenuItemNamemiPrintPrintText打印ToolStripMenuItemNamemiPrintPrinterSetupText设置打印机...ToolStripMenuItemNamemiPrintPageSetupText设置页面...ToolStripNametsEditor工具条StatusStripNamessEditor状态条RichTextBoxNamertbEditor富格式文本编辑器DockFillOpenFileDialogNamedlgOpen打开文件对话框PrintDocumentNamedocPrint打印文档控件文本编辑器的设计与实现第4/18页测试:2.3文件功能实现在frmEditor类的开始定义一个数据成员_fileName,用于保存当前正在编辑的文件名。publicpartialclassfrmEditor:Form{privatestring_fileName;//编辑的当前文件名publicfrmEditor(){InitializeComponent();}......}2.3.1退出实际上就是退出应用程序。privatevoidmiFileExit_Click(objectsender,EventArgse){Application.Exit();}2.3.2新建文件实际上就是将rtbEditor中的内容清空,同时将当前正在编辑的文件名也设置为空。privatevoidmiFileNew_Click(objectsender,EventArgse){rtbEditor.Text=;_fileName=;}2.3.3打开文件设置文件打开对话框的过滤参数,即:Filter=文本文件(*.txt)|*.txt|所有文件(*.*)|*.*,然后弹出一个打开对话框,用户指定一个文件,然后将文件的内容读入到rtbEditor中。privatevoidmiFileOpen_Click(objectsender,EventArgse){dlgOpen.Filter=文本文件(*.txt)|*.txt|富格式文件(*.rtf)|*.rtf|所有文件(*.*)|*.*;if(dlgOpen.ShowDialog()==DialogResult.OK){文本编辑器的设计与实现第5/18页_fileName=dlgOpen.FileName;if(Path.GetExtension(_fileName)==.rtf)rtbEditor.LoadFile(_fileName,RichTextBoxStreamType.RichText);elsertbEditor.LoadFile(_fileName,RichTextBoxStreamType.PlainText);}}测试:选择菜单“文件|打开”时,弹出一个文件打开对话框,初始的路径为“我的文档”。思考题:?如何指定打开对话框默认的路径?2.3.4保存文件文本编辑器类frmEditor有一个数据成员_fileName,用于保存当前正在编辑的文件名,新建文件时,设置_fileName为空。选择“保存”菜单时,如果_fileName为空,动态创建一个保存对话框(默认扩展名、默认文件夹、默认文件类型),由用户指定保存的文件名,将编辑器中的内容保存到指定的文件中,然后修改_fileName。privatevoidmiFileSave_Click(objectsender,EventArgse){//如果文件名为空,表示是新文件,保存时需要用户指定文件名if(_fileName==){//动态创建一个文件保存对话框SaveFileDialogdlgSave=newSaveFileDialog();//设置保存对话框的默认参数//指定默认的对话框标题dlgSave.Title=保存文本编辑器文件;//指定默认的文件路径DirectoryInfodi=newDirectoryInfo(Application.StartupPath);di=di.Parent.Parent;dlgSave.InitialDirectory=di.FullName;dlgSave.Filter=文本文件(*.txt)|*.txt|富格式文件(*.rtf)|*.rtf|所有文件(*.*)|*.*;//显示保存文件对话框,且用户按下了“确认”按钮if(dlgSave.ShowDialog()==DialogResult.OK){_fileName=dlgSave.FileName;if(Path.GetExtension(_fileName)==.rtf)rtbEditor.SaveFile(_fileName,RichTextBoxStreamType.RichText);elsertbEditor.SaveFile(_fileName,RichTextBoxStreamType.PlainText);}}//如果不是新文件,根据当前文件的格式保存当前文件else{if(Path.GetExtension(_fileName)==.rtf)rtbEditor.SaveFile(_fileName,RichTextBoxStreamType.RichText);elsertbEditor.SaveFile(_fileName,RichTextBoxStreamType.PlainText);}}2.3.5另存为文件弹出一个文件保存对话框,用户指定保存的文件名,将当前的文件内容保存到用户的指定文件中,并修改当前文件名_fileName。(代码留给学生自己完成)测试:新建一个文件,输入文件内容,保存(这时需要指定新文件名,扩展名为txt),退出。打开一个文本文件,添加一行文本,修改部分内容,删除一些内容,保存(这时不需要指定新文件名),另存为一个新文件,扩展名为rtf,退出。文本编辑器的设计与实现第6/18页打开一个扩展名为rtf文件的文件,退出。2.4编辑功能实现2.4.1剪切、复制、粘贴、撤消、恢复这几个功能都是RichTextBox自身提供的,我们直接引用就可以了。以Cut为例,其代码如下:privatevoidmiEditCut_Click(objectsender,EventArgse){rtbEditor.Cut();}测试:新建一个文件,输入文件内容,保存(这时需要指定新文件名,扩展名为txt),退出。思考题:2.5格式功能实现2.5.1字体创建一个字体对话框(dlgFont),弹出字体对话框,选择字体。根据是否有选择文本,若有,修改选择文本的字体,否则,修改整个文本的字体。privatevoidmiStyleFont_Click(objectsender,EventArgse){//创建字体对话框FontDialogdlgFont=newFontDialog();dlgFont.ShowColor=true;dlgFont.ShowApply=true;//设置字体对框的默认字体,//如果已经有选择文本,则设置为选择文本的字体和颜色//否则设置为全文的字体和姿色if(rtbEditor.SelectionLength0){dlgFont.Font=rtbEditor.SelectionFont;dlgFont.Color=rtbEditor.SelectionColor;}else{dlgFont.Font=rtbEditor.Font;dlgFont.Color=rtbEditor.ForeColor;}//显示字体对话框,且用户按下了“确认”按钮if(dlgFont.ShowDialog()==DialogResult.OK){//如果有选择文件,刚修改选择文本的字体和颜色if(rtbEditor.SelectionLength0){rtbEditor.SelectionFont=dlgFont.Font;rtbEditor.SelectionColor=dlgFont.Color;}//否则修
本文标题:51CTO-文本编辑器的设计与实现
链接地址:https://www.777doc.com/doc-2893548 .html