您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 基于C#的文本编辑器
简介本讲涉及的控件有:菜单、工具条、状态栏、分页控件、系统对话框(打开对话框、保存对话框、预览对话框、打印对话框、打印设置对话框、颜色对话框、字体对话框)、用户自定义对话框等。界面效果如图功能设计1.1文件新建:新建一个编辑窗口;打开:弹出打开对话框,打开一个指定的文本文件;保存:如果当前有文件名,就保存当前编辑的文本文件,如果没有文件名,弹出保存对话框,保存当前编辑的文本文件;另存为:弹出保存对话框,将当前编辑的文本文件以指定的另一个文件名存盘;退出:结束当前编辑的文本文件,退出系统;预览:预览编辑器中的内容;打印:打印编辑器中的内容;设置:设置默认打印页面;1.2格式字体:弹出字体对话框,设置选定文本的字体;颜色:弹出颜色对话框,设置选定文本的颜色;左对齐:当前段文本左对齐;中对齐:当前段文本中对齐;右对齐:当前段文本右对齐;缩进:当前段文本悬挂缩进;1.3编辑剪切:剪切选定内容,并放到剪切板;复制:复制选定内容,并放到剪切板;粘贴:将剪切板的内容插入到当前位置;撤消:撤消上次操作;恢复:恢复上次操作;查找:查找文档中的内容替换:替换文档中的内容2功能实现2.1建立项目解决方案(文本文件编辑器),项目名称(Editor),窗体文件(frmEditor);2.2设计窗体控件属性属性值说明FormNamefrmEditorText文本文件编辑器Font宋体,五号MenuStripNamemsEditor菜单条ToolStripMenuItemNamemnFile文件菜单Text文件ToolStripMenuItemNamemiFileNewText新建ToolStripMenuItemNamemiFileOpenText打开ToolStripMenuItemNamemiFileSaveText保存ToolStripMenuItemNamemiFileSaveAsText另存为ToolStripMenuItemNamemiFileExitText退出ToolStripMenuItemNamemnEdit编辑菜单Text编辑ToolStripMenuItemNamemiEditCutText剪切ToolStripMenuItemNamemiEditCopyText复制ToolStripMenuItemNamemiEditPasteText粘贴ToolStripMenuItemNamemiEditUnDoText撤消ToolStripMenuItemNamemiEditReDoText恢复ToolStripMenuItemNamemiEditFindText查找ToolStripMenuItemNamemiEditReplaceText替换ToolStripMenuItemNamemnStyle格式菜单Text格式ToolStripMenuItemNamemiStyleFontText字体ToolStripMenuItemNamemiStyleColorText颜色ToolStripMenuItemNamemiStyleAlignLeftText左对齐ToolStripMenuItemNamemiStyleAlignCenterText中对齐ToolStripMenuItemNamemiStyleAlignRightText右对齐ToolStripMenuItemNamemiStyleIndentText缩进ToolStripMenuItemNamemnPrint打印菜单Text打印ToolStripNametsEditor工具条StatusStripNamessEditor状态条RichTextBoxNamertbEditor富格式文本编辑器DockFillOpenFileDialogNamedlgOpen打开文件对话框PrintDocumentNamedocPrint打印文档控件2.3文件功能实现在frmEditor类的开始定义一个数据成员_fileName,用于保存当前正在编辑的文件名。publicpartialclassfrmEditor:Form{privatestring_fileName;//编辑的当前文件名publicfrmEditor(){InitializeComponent();}2.3.1退出DialogResultresult;result=MessageBox.Show(退出前是否保存,退出,MessageBoxButtons.YesNoCancel,MessageBoxIcon.Question);if(result==DialogResult.No){this.Close();}elseif(result==DialogResult.Yes){SaveFileDialogdlgSave=newSaveFileDialog();//设置保存对话框的默认参数dlgSave.InitialDirectory=c:\tmp;dlgSave.Filter=文本文件(*.txt)|*.txt|富格式文件(*rtf)|*.rtf|所有文件(*.*)|*.*;dlgSave.Title=保存我的文件;//显示保存对话框if(dlgSave.ShowDialog()==DialogResult.OK)//表示按下“确认”按钮{_fileName=dlgSave.FileName;//得到用户指定的文件名//如果扩展名为rtf格式,则以RTF格式保存文件,否则以普通文本格式保存文件if(Path.GetExtension(_fileName)==.rtf)rtbEditor.SaveFile(_fileName,RichTextBoxStreamType.RichText);elsertbEditor.SaveFile(_fileName,RichTextBoxStreamType.PlainText);}2.3.2新建文件{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){_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。{//如果文件名为空,表示是新文件,保存时需要用户指定文件名if(_fileName==){//动态创建一个文件保存对话框SaveFileDialogdlgSave=newSaveFileDialog();//设置保存对话框的默认参数dlgSave.InitialDirectory=c:\tmp;dlgSave.Filter=文本文件(*.txt)|*.txt|富格式文件(*.rtf)|*.rtf|所有文件(*.*)|*.*;dlgSave.Title=保存我的文件;//显示保存对话框if(dlgSave.ShowDialog()==DialogResult.OK)//表示按下“确认”按钮{_fileName=dlgSave.FileName;//得到用户指定的文件名//如果扩展名为rtf格式,则以RTF格式保存文件,否则以普通文本格式保存文件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。//动态创建一个文件保存对话框SaveFileDialogdlgSave=newSaveFileDialog();//设置保存对话框的默认参数dlgSave.InitialDirectory=c:\tmp;dlgSave.Filter=文本文件(*.txt)|*.txt|富格式文件(*rtf)|*.rtf|所有文件(*.*)|*.*;dlgSave.Title=保存我的文件;//显示保存对话框if(dlgSave.ShowDialog()==DialogResult.OK)//表示按下“确认”按钮{_fileName=dlgSave.FileName;//得到用户指定的文件名//如果扩展名为rtf格式,则以RTF格式保存文件,否则以普通文本格式保存文件if(Path.GetExtension(_fileName)==.rtf)rtbEditor.SaveFile(_fileName,RichTextBoxStreamType.RichText);elsertbEditor.SaveFile(_fileName,RichTextBoxStreamType.PlainText);}2.4编辑功能实现2.4.1剪切、复制、粘贴、撤消、恢复这几个功能都是RichTextBox自身提供的,我们直接引用就可以了。以Cut为例,其代码如下:privatevoidmiEditCut_Click(objectsender,EventArgse){rtbEditor.Cut();}2.5格式功能实现2.5.1字体创建一个字体对话框(dlgFont),弹出字体对话框,选择字体。根据是否有选择文本,若有,修改选择文本的字体,否则,修改整个文本的字体。//创建字体对话框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.
本文标题:基于C#的文本编辑器
链接地址:https://www.777doc.com/doc-4336412 .html