您好,欢迎访问三七文档
第四讲Windows界面程序设计简介本讲涉及的控件有:菜单、工具条、状态栏、分页控件、系统对话框(打开对话框、保存对话框、预览对话框、打印对话框、打印设置对话框、颜色对话框、字体对话框)、用户自定义对话框等。1功能设计1.1文件新建:新建一个编辑窗口;打开:弹出打开对话框,打开一个指定的文本文件;保存:如果当前有文件名,就保存当前编辑的文本文件,如果没有文件名,弹出保存对话框,保存当前编辑的文本文件;另存为:弹出保存对话框,将当前编辑的文本文件以指定的另一个文件名存盘;退出:结束当前编辑的文本文件,退出系统;1.2编辑剪切:剪切选定内容,并放到剪切板;复制:复制选定内容,并放到剪切板;粘贴:将剪切板的内容插入到当前位置;撤消:撤消上次操作;恢复:恢复上次操作;查找:?替换:?1.3格式字体:弹出字体对话框,设置选定文本的字体;颜色:弹出颜色对话框,设置选定文本的颜色;左对齐:当前段文本左对齐;中对齐:当前段文本中对齐;右对齐:当前段文本右对齐;缩进:当前段文本悬挂缩进;1.4打印预览:预览编辑器中的内容;打印:打印编辑器中的内容;设置:设置默认打印页面;2功能实现2.1建立项目解决方案(ChA201文本文件编辑器),项目名称(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退出实际上就是退出应用程序。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){_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.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。(代码留给学生自己完成)测试:新建一个文件,输入文件内容,保存(这时需要指定新文件名,扩展名为txt),退出。打开一个文本文件,添加一行文本,修改部分内容,删除一些内容,保存(这时不需要指定新文件名),另存为一个新文件,扩展名为rtf,退出。打开一个扩展名为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;}//否则修改整个文本的字体和颜色else{rtbEditor.Font=dlgFont.Font;rtbEditor.ForeColor=dlgFont.Color;}}}2.5.2颜色创建一个颜色对话框(dlgColor),设置颜色对话框的当前颜色(没有选定,就为编辑器的颜色,若有选定,就为选定文本的颜色),弹出颜色对话框,选择颜色。测试:首先打开一个文件,然后选择菜单“格式|字体”,弹出字体对话框,选择一种字体,然后确认对话框,观察编辑器中的字体变化。选择菜单“格式|颜色”,弹出颜色对话框,选择一种颜色,然后确认对话框,观察编辑器中的颜色变化。?在字体对话框中怎么没有字体的颜色??如何只改变选择部分的字体?==答案设置字体对话框的一些属性(ShowColor,ShowApply);只改变选择部分的字体(SelectionFont)和颜色(SelectionColor);2.5.3左、中、右对齐改变当前
本文标题:C#文本编辑器
链接地址:https://www.777doc.com/doc-4767181 .html