多文档编辑器实验报告

2020-04-17 01:05

多文档编辑器

一、 实验要求

1. 参考系统提供的写字板功能,编写一个小型的文字编辑工具 2. 对该文档编辑器,至少完成以下功能:

文件:(新建、打开、保存、退出) 编辑:(复制、剪切、粘贴、全选)

格式:(自动换行、字体、颜色),格式的设置功能要区分是设置当前块的格式还是设置所有内

容的格式;

界面设计时应有工具栏,弹出菜单,状态栏等功能来提高操作的便利性;

二、 设计思路

本实验是实现一个多文档编辑器,支持txt文件,一共包含四个文件,其中文件Form1.CS用于实现写字板的主界面框架,Form2.CS用于实现写字板的主要功能,FormPageSetting用于实现页面设置的对话框,aboutMyForm用于实现显示一共“关于”对话框。 1. 界面设计

本实验主表单中使用的界面元素及其属性设置如表1-1所示:

表1-1 主表单Form1中使用的界面元素及其属性设置

组件 Form1 menuStrip toolStrip statusStrip openFileDialog saveFileDialog 属性 Text IsMdiContain name Name Dock Name Filter Filter 设置 Form1 True menuStrip1 menuStrip1 Top statusStrip1 \files(*.rtf)|*.rtf|All files(*.*)|*.*\\files(*.rtf)|*.rtf|All files(*.*)|*.*\表1-2 Form2上的控件对象的主要属性设置

组件 Form2 richTextBox1 属性 Text Dock 设置 Form2 Fill 本实验的主界面如图所示:

2. 新建文件

程序运行后,如果用户单击菜单项“新建”,则将新建一个文件,实现这一功能的源程序如下:

private void NewToolStripMenuItem_Click(object sender, EventArgs e)//在Form1.cs上 {

Form2 mdiChildForm = new Form2(); count++;

mdiChildForm.Text = \ + count.ToString(); mdiChildForm.MdiParent = this; mdiChildForm.Show(); status.Text = \新建文件\; }

3. 打开文件

该功能的实现首先是调用openFileDialog对象的showDialog方法,该方法执行成功后将弹出一个标准的打开文件对话框,用户可以在该对话框中指定一个txt格式的文件作为richTextBox组件打开的文档。如果用户单击OK按钮从对话框中返回后,在openFileDialog对象的FileName属性中,记录下用户在对话框中选择的文件的文件名。

public void openfile(string filename) { try {

richTextBox1.LoadFile(filename, RichTextBoxStreamType.PlainText);//在Form2.cs上 }

catch (Exception)

{ MessageBox.Show(\文件不存在或读写错误\); } }

private void open() {

if (this.openFileDialog1.ShowDialog() == DialogResult.OK) {

string fname = openFileDialog1.FileName;

//ActiveMdiChild表示MDI窗体的当前活动子窗体,类型为Form. Form2 childForm = (Form2)this.ActiveMdiChild; if (childForm == null) {

childForm = new Form2(); childForm.MdiParent = this; childForm.Text = fname; childForm.Show(); }

childForm.openfile(fname); } }

4. 保存文件

该功能的实现首先是调用saveFileDialog对象的showDialog方法,该方法执行成功后将弹出一个标准的打开文件对话框,用户可以在该对话框中指定richTextBox的文档的文件格式为txt,以及文件名和存储路径。如果用户单击OK按钮从对话框中返回后,该文件就保存成功了。

public void savefile() {

if (saveFileDialog1.ShowDialog() == DialogResult.OK)

{richTextBox1.SaveFile(saveFileDialog1.FileName,RichTextBoxStreamType.PlainText); //将richtextbox内容保存到RTF格式文件 } }

5. 编辑操作

为了实现文档编辑器的剪切、复制、粘贴、重复、撤销、全选、清除等功能,调用了richTextBox类的一些主要方法:

public void cut() //剪切 { richTextBox1.Cut(); }

public void copy()//复制 { richTextBox1.Copy(); }

下面的paste()程序首先调用Clipboard类的GetDataObject方法获得当前保存在剪贴板中的数据,并将这些数据保存在变量l_objClipboard对象中。GetDataObject方法的原型定义如下所示:public static IDdataObject(); 然后调用l_objClipboard对象的GetDataParesent方法来判断当前保存在剪贴板上的数据剪贴到richTextBox组件中。L_objclipboard对象的GetDataPresent方法的原型定义如下:bool GetDataPresent(Type Format); public void paste() //粘贴 {

IDataObject l_objClipboard = Clipboard.GetDataObject(); if (l_objClipboard.GetDataPresent(DataFormats.Bitmap) == true) {

richTextBox1.Paste(DataFormats.GetFormat(DataFormats.Bitmap));

}

else if (l_objClipboard.GetDataPresent(DataFormats.Text) == true) {

richTextBox1.Paste(DataFormats.GetFormat(DataFormats.Text)); }

else if (l_objClipboard.GetDataPresent(DataFormats.Dib) == true) {

richTextBox1.Paste(DataFormats.GetFormat(DataFormats.Dib));

}

}

public void undo() //撤销

{ richTextBox1.Undo(); } public void redo() //重复 { richTextBox1.Redo(); }

public void selectAll() //全选 { richTextBox1.SelectAll(); }

public void duanluo() {//段落设置

richTextBox1.SelectionIndent = 30; //首行缩进30 Pixels

richTextBox1.SelectionHangingIndent = -20; //第二行以后左缩进10 Pixels richTextBox1.SelectionRightIndent = 10;// 右缩进10 Pixels }

private void DeltoolStripButton1_Click(object sender, EventArgs e) {

Form2 childForm = (Form2)this.ActiveMdiChild; childForm.clear();

status.Text = \清除文档内容\; }

6. 格式化文档

本实验还可以对richTextBox组件中的文档进行简单的格式处理。比如设置字体以及字体颜色等。 本实验设置字体的操作是通过如下程序来实现的:

设置字体的操作是通过Windows的标准字体对话框来实现的,用户在该对话框中指定的字体将保存在fontDlg对象的Font属性中。改程序代码如下:

public void font() {

FontDialog fontDlg = new FontDialog(); fontDlg.ShowColor = true;

fontDlg.Font = richTextBox1.Font; fontDlg.Color = richTextBox1.ForeColor;

if (fontDlg.ShowDialog() == DialogResult.OK) {

richTextBox1.SelectionFont = fontDlg.Font; // richTextBox1.Font = fontDlg.Font; richTextBox1.ForeColor = fontDlg.Color; } }

设置字体颜色的操作是通过Windows的标准字体颜色对话框来实现的,用户在该对话框中指定的字体颜色将保存在colorDlg对象的Color属性中。改程序代码如下:

public void color() {

ColorDialog colorDlg = new ColorDialog(); colorDlg.AllowFullOpen = true; colorDlg.Color = Color.Red;

if (colorDlg.ShowDialog() == DialogResult.OK) {

//richTextBox1.ForeColor = colorDlg.Color; richTextBox1.SelectionColor = colorDlg.Color; } }

7. 帮助菜单

本实验的帮助菜单很简单,它只有一个菜单项,用于弹出一个关于对话框。该对话框是由组件Form和label组成的。其中Form的FormBorderStyle属性更改为“FixedDialog”,通过BackgroundImage属性导入图片;而label的Font属性更改为“华文行楷, 42pt”,Text属性写为“C#多文档编辑器”。因此,该菜单项的对话框如图:


多文档编辑器实验报告.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:膜堆肥处理污泥方案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: