文本编辑器的实现.ppt
《文本编辑器的实现.ppt》由会员分享,可在线阅读,更多相关《文本编辑器的实现.ppt(39页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1第第4章章 文本编辑器的实现文本编辑器的实现 本章的目的是建立一个文本编辑器,同时继续本章的目的是建立一个文本编辑器,同时继续介绍控件的用法。有两类文本编辑器:单文档和多介绍控件的用法。有两类文本编辑器:单文档和多文档文本编辑器。单文档文本编辑器一次只能打开文档文本编辑器。单文档文本编辑器一次只能打开一个文件,如果要打开另一个文件,必须关闭当前一个文件,如果要打开另一个文件,必须关闭当前打开的文件,微软的写字板程序就是单文档字处理打开的文件,微软的写字板程序就是单文档字处理程序。多文档文本编辑器允许同时打开多个文件,程序。多文档文本编辑器允许同时打开多个文件,每个文件占用一个子窗口,微软的每
2、个文件占用一个子窗口,微软的Word程序就是程序就是多文档字处理程序。本章首先介绍建立单文档文本多文档字处理程序。本章首先介绍建立单文档文本编辑器的方法,然后介绍建立多文档文本编辑器的编辑器的方法,然后介绍建立多文档文本编辑器的方法。方法。24.1 RichTextBox控件控件 使用使用RichTextBox 可以建立一个文本编辑器,它和可以建立一个文本编辑器,它和TextBox 的一些的一些属性、事件和方法相同,其新增属性、事件和方法如下:属性、事件和方法相同,其新增属性、事件和方法如下:u属性属性Dock:u属性属性SelectedText、SelectionLength、Selecti
3、onStart:u属性属性SelectionFont:u属性属性SelectionColor:u属性属性Lines:u属性属性Modified:u事件事件SelectionChange:u事件事件TextChanged:u方法方法Clear():u方法方法Copy()、Cut()、Paste():u方法方法SelectAll():u方法方法Find():u方法方法SaveFile()和和LoadFile():u方法方法Undo():u方法方法Redo():34.2 剪贴板功能剪贴板功能 放放RichTextBox控件到窗体。属性控件到窗体。属性Name=richTextBox1,Dock=Fi
4、ll,Text=。private void menuItemEditCut_Click(object sender,EventArgs e)richTextBox1.Cut();/剪切剪切private void menuItemEditCopy_Click(object sender,EventArgs e)richTextBox1.Copy();/拷贝拷贝private void menuItemEditPaste_Click(object sender,EventArgs e)richTextBox1.Paste();/粘贴粘贴private void menuItemEditUndo_
5、Click(object sender,EventArgs e)richTextBox1.Undo();/撤销撤销private void menuItemEditRedo_Click(object sender,EventArgs e)richTextBox1.Redo();/恢复恢复44.3 存取文件存取文件 文本编辑器都应具有文件存取功能,菜单顶级菜单项文本编辑器都应具有文件存取功能,菜单顶级菜单项“文件文件”的弹出菜单中一般包括如下菜单项:新建、打的弹出菜单中一般包括如下菜单项:新建、打开、关闭、保存和另存为等。本节实现以上菜单项。开、关闭、保存和另存为等。本节实现以上菜单项。4.3.
6、1 OpenFileDialog和和SaveFileDialog控件控件两个对话框的两个对话框的 的常用属性:的常用属性:v属性属性FilterFilter:例:例如如Filter=Filter=“纯文本文件纯文本文件(*.txt)|*.txt|(*.txt)|*.txt|所有文件所有文件(*.*)|*.*(*.*)|*.*”v属性属性FilterIndexFilterIndex:v属性属性FileNameFileName:v属性属性InitialDirectoryInitialDirectory:v属性属性DefaultExtDefaultExt:v方法方法ShowDialog()ShowD
7、ialog():5674.3.2 存取文件功能实现存取文件功能实现 把把OpenFileDialogOpenFileDialog和和SaveFileDialogSaveFileDialog控件放到窗体中。为控件放到窗体中。为菜单增加顶级菜单项:文件,为其弹出菜单增加菜单项:菜单增加顶级菜单项:文件,为其弹出菜单增加菜单项:新建、打开新建、打开.、保存、保存.、另存为、另存为.、退出。修改这些菜、退出。修改这些菜单项的单项的NameName属性分别为:属性分别为:mainMenuFilemainMenuFile、menuItemFileNewmenuItemFileNew、menuItemFil
8、eOpenmenuItemFileOpen、menuItemFileSavemenuItemFileSave、menuItemFileSaveAsmenuItemFileSaveAs、menuItemFileExitmenuItemFileExit。为为Form1Form1类中定义变量:类中定义变量:string s_FileName=string s_FileName=,记录当前,记录当前编辑的文件名编辑的文件名 private void menuItemFileNew_Click(object private void menuItemFileNew_Click(object sender
9、,EventArgs e)/sender,EventArgs e)/新建文件菜单项新建文件菜单项 richTextBox1.Text=;/richTextBox1.Text=;/或或richTextBox1.Clear();richTextBox1.Clear();s_FileName=;/s_FileName=;/新建文件没有文件名。新建文件没有文件名。8private void menuItemFileOpen_Click(/private void menuItemFileOpen_Click(/打开文件菜单项打开文件菜单项object sender,EventArgs e)object
10、 sender,EventArgs e)if(openFileDialog1.ShowDialog()=DialogResult.OK)if(openFileDialog1.ShowDialog()=DialogResult.OK)s_FileName=openFileDialog1.FileName;s_FileName=openFileDialog1.FileName;richTextBox1.LoadFile(openFileDialog1.FileName,richTextBox1.LoadFile(openFileDialog1.FileName,RichTextBoxStreamT
11、ype.PlainText);RichTextBoxStreamType.PlainText);private void menuItemFileSaveAs_Click(/private void menuItemFileSaveAs_Click(/另存为菜单项另存为菜单项object sender,EventArgs e)object sender,EventArgs e)if(saveFileDialog1.ShowDialog()=DialogResult.OK)if(saveFileDialog1.ShowDialog()=DialogResult.OK)s_FileName=sav
12、eFileDialog1.FileName;s_FileName=saveFileDialog1.FileName;richTextBox1.SaveFile(saveFileDialog1.FileName,richTextBox1.SaveFile(saveFileDialog1.FileName,RichTextBoxStreamType.PlainText);RichTextBoxStreamType.PlainText);/注意存取文件类型应一致。注意存取文件类型应一致。9private void menuItemSaveFile_Click(/private void menuIt
13、emSaveFile_Click(/保存文件菜单项保存文件菜单项object sender,EventArgs e)object sender,EventArgs e)if(s_FileName.Length!=0)if(s_FileName.Length!=0)richTextBox1.SaveFile(s_FileName,richTextBox1.SaveFile(s_FileName,RichTextBoxStreamType.PlainText);RichTextBoxStreamType.PlainText);elseelsemenuItemFileSaveAs_Click(sen
14、der,e);menuItemFileSaveAs_Click(sender,e);private void menuItemExit_Click(private void menuItemExit_Click(/退出菜单项退出菜单项object sender,EventArgs e)object sender,EventArgs e)Close();Close();104.4 修改字体修改字体 为修改使用的字体,可打开字体对话框为修改使用的字体,可打开字体对话框FontDialogFontDialog,选择指定字体。可以按两种方式修改字体,如果,选择指定字体。可以按两种方式修改字体,如果未选
15、中文本,表示以后键入的字符将按选定字体输未选中文本,表示以后键入的字符将按选定字体输入。如果选中文本,则仅修改选定文本的字体。修入。如果选中文本,则仅修改选定文本的字体。修改字符颜色也根据同样原则。改字符颜色也根据同样原则。4.4.1 FontDialog控件控件 可以用可以用FontDialogFontDialog对话框选定指定字体,对话框选定指定字体,FontDialogFontDialog控件和控件和OpenDialogOpenDialog控件的属性和方法控件的属性和方法基本相同,这里只介绍属性基本相同,这里只介绍属性FontFont,它代表用,它代表用FontDialogFontDia
16、log对话框选定的字体。对话框选定的字体。11124.4.2 修改字体实现方法修改字体实现方法 放放FontDialogFontDialog控件到窗体,属性控件到窗体,属性Name=fontDialog1Name=fontDialog1。为菜单增加顶级菜单项:格式,属性为菜单增加顶级菜单项:格式,属性NameName为为mainMenuModelmainMenuModel,为其弹出菜单增加菜单项:字体,属,为其弹出菜单增加菜单项:字体,属性性NameName为为menuItemModelFontmenuItemModelFont,为菜单,为菜单“格式格式|字体字体”菜单项增加单击事件处理函数如
17、下:菜单项增加单击事件处理函数如下:private void menuItemModelFont_Click(private void menuItemModelFont_Click(object sender,EventArgs e)object sender,EventArgs e)if(fontDialog1.ShowDialog()=DialogResult.OK)if(fontDialog1.ShowDialog()=DialogResult.OK)richTextBox1.SelectionFont=fontDialog1.Font;richTextBox1.SelectionFo
18、nt=fontDialog1.Font;134.5 About对话框对话框 单击菜单单击菜单 项目项目|添加添加WindowsWindows窗体窗体 菜单项,弹出对话框菜单项,弹出对话框 14如上图添加一个窗体,修改如上图添加一个窗体,修改formAboutformAbout窗体属性窗体属性StartPosition=CenterParentStartPosition=CenterParent,修改属性修改属性MaximizeBox=FalseMaximizeBox=False,MinimizeBox=FalseMinimizeBox=False 属性属性FormBorderStyle=Fix
19、edDialogFormBorderStyle=FixedDialog 运行运行界面界面 如下:如下:15标题为标题为“确定确定”按钮单击事件处理函数如下:按钮单击事件处理函数如下:private void button1_Click(object private void button1_Click(object sender,EventArgs e)sender,EventArgs e)Close();Close();为菜单增加顶级菜单项:帮助,为其弹出菜单增加标为菜单增加顶级菜单项:帮助,为其弹出菜单增加标题为题为“关于关于”的的菜单项,属性菜单项,属性NameName为为menuIte
20、mAboutmenuItemAbout。菜单菜单“帮助帮助|关于关于”菜单项单击事菜单项单击事件处理函数如下:件处理函数如下:private void menuItemAbout_Click(private void menuItemAbout_Click(object sender,EventArgs e)object sender,EventArgs e)formAbout AboutDialog=new formAbout();formAbout AboutDialog=new formAbout();AboutDialog.ShowDialog(this);AboutDialog.Sh
21、owDialog(this);/打开模式对话框打开模式对话框/注意不能使用注意不能使用Show()Show()函数,它打开非模式对话框函数,它打开非模式对话框 164.6 文本编辑器查找替换功能文本编辑器查找替换功能 本节首先介绍模式对话框和非模式对话框的概念。本节首先介绍模式对话框和非模式对话框的概念。并使用非模式对话框在文本编辑器中实现查找和替换并使用非模式对话框在文本编辑器中实现查找和替换功能。功能。4.6.1 4.6.1 模式对话框和非模式对话框模式对话框和非模式对话框 模式对话框和非模式对话框的区别是:模式对话框和非模式对话框的区别是:两类对话框本质上都是窗体,两类对话框本质上都是窗
22、体,是是FormForm类的派生类,只类的派生类,只是打开时使用的方法不一样,打开模式对话框,使用是打开时使用的方法不一样,打开模式对话框,使用方法方法ShowDialog()ShowDialog(),而打开非模式对话框,使用方法,而打开非模式对话框,使用方法ShowShow()()。174.6.2 查找替换功能的实现查找替换功能的实现 建立新窗体,建立新窗体,窗体文件名称为窗体文件名称为formFindReplace.csformFindReplace.cs,作为作为 查找替查找替换换 对话框。对话框。窗体窗体类类名也名也为为formFindReplace,formFindReplace,为
23、为formFindReplaceformFindReplace类类增加增加变变量:量:Form1 MainForm1;Form1 MainForm1;属性属性StartPosition=CenterParentStartPosition=CenterParent,MaximizeBox=FalseMaximizeBox=False,MinimizeBox=False,FormBorderStyle=FixedDialog,Text=MinimizeBox=False,FormBorderStyle=FixedDialog,Text=“查查找和替找和替换换”,对话对话框界面如框界面如图图:184
24、.6.2 查找替换功能的实现查找替换功能的实现(续)(续)修改修改formFindReplaceformFindReplace类构造函数如下类构造函数如下,增加的参数增加的参数form1form1是主窗体是主窗体属性属性NameName的值。的值。public formFindReplace(Form1 form1)public formFindReplace(Form1 form1)InitializeComponent();InitializeComponent();MainForm1=form1;/MainForm1=form1;/新增语句新增语句,记录主窗体属性记录主窗体属性NameN
25、ame的值的值/有了有了Form1Form1引用,可以在引用,可以在formFindReplaceformFindReplace类类中中调调用用Form1Form1类类的公有方法的公有方法 查找替换对话框查找替换对话框中中标题为标题为“查查找下一个找下一个”按按钮单击钮单击事件函数如下:事件函数如下:private void buttonFind_Click(object sender,EventArgs e)private void buttonFind_Click(object sender,EventArgs e)if(textBox1.Text.Length!=0)if(textBox
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 文本 编辑器 实现
限制150内