《C#文本编辑器 实验报告.doc》由会员分享,可在线阅读,更多相关《C#文本编辑器 实验报告.doc(25页珍藏版)》请在金锄头文库上搜索。
1、实验3 文本编辑器【实验目的】n 进一步实践windows窗口程序开发的流程;n 掌握并熟练使用RichTextBox、Button、MenuTrip控件。【实验环境】 Visual Studio 2005(或更高版本)【实验内容】设计一个基于RichTextBox的文本编辑器,要求实现文件打开、保存、字体和颜色修改、字符查找和替换功能,鼓励扩展其他功能。【实验结果】文件菜单:打开程序编辑文本-文件-保存保存结果:编辑文本:文件-打开(文件已修改打开询问保存)点击“是”-继续打开此文件(点击“取消”或者关闭提示则不执行打开 “否”则不保存)打开后:(上次打开操作保存结果在本次打开中体现)文件-
2、另存为另存为结果:编辑文本文件-退出(退出提示保存)点击“否”(点击“取消”或者关闭提示则不执行退出 “是”则保存)设置文件打开方式为 本实验程序双击文件:使用本实验程序进行打开(由于上一次退出前选择“否”文本没有保存“准备退出”)不修改文本 文件-退出(由于文件没有修改不提示保存直接退出 关闭窗口同理)编辑菜单:编辑-查找(不演示撤销等操作、没有查找内容“查找下一个”处于禁用)输入查找内容 点击“查找下一个”:再次点击“查找下一个”:打钩 区分大小写 选择方向向上两次点击“查找下一个”:取消打钩 区分大小写编辑-查找(没有查找内容和替换“查找下一个”“替换”.处于禁用)打钩 区分大小写 输入
3、查找内容和替换内容 点击两次替换取消打钩 区分大小写 点击全部替换格式菜单:格式-字体确定后:格式-颜色确定后:格式-对齐方式全选 格式-对齐方式-右对齐(不演示居中)帮助-关于【实验核心代码】 Form1(主窗口):using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace FileE
4、dit public partial class Form1 : Form private string filename; private RichTextBox rtb = new RichTextBox(); public Form1(string path) InitializeComponent(); filename = path; private void 打开OToolStripMenuItem_Click(object sender, EventArgs e) if (!richTextBox1.Text.Equals(rtb.Text) DialogResult resul
5、t = MessageBox.Show(是否将更改保存到 + filename, , MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question); if (result = DialogResult.Yes) this.保存SToolStripMenuItem_Click(sender, e); else if (result = DialogResult.Cancel) return; OpenFileDialog open = new OpenFileDialog(); open.Filter = Word文档(*.rtf)|*.rtf;
6、 if (open.ShowDialog() = DialogResult.OK) richTextBox1.LoadFile(open.FileName, RichTextBoxStreamType.RichText); rtb.Text = richTextBox1.Text; filename = open.FileName; this.Text = filename.Substring(filename.LastIndexOf() + 1) + - 文本编辑器; private void 复制CToolStripMenuItem_Click(object sender, EventAr
7、gs e) richTextBox1.Copy(); private void 剪切ToolStripMenuItem_Click(object sender, EventArgs e) richTextBox1.Cut(); private void 粘贴VToolStripMenuItem_Click(object sender, EventArgs e) richTextBox1.Paste(); private void 保存SToolStripMenuItem_Click(object sender, EventArgs e) if (filename = 无标题)? SaveFil
8、eDialog dlgSave=new SaveFileDialog(); dlgSave.InitialDirectory=c:tmp; dlgSave.Filter = Word文档(*.rtf)|*.rtf; dlgSave.Title=保存我的文件; if(dlgSave.ShowDialog()=DialogResult.OK) filename=dlgSave.FileName;richTextBox1.SaveFile(filename,?RichTextBoxStreamType.RichText); else richTextBox1.SaveFile(filename, R
9、ichTextBoxStreamType.RichText); rtb.Text = richTextBox1.Text; private void 新建NToolStripMenuItem_Click(object sender, EventArgs e) if (!richTextBox1.Text.Equals(rtb.Text) DialogResult result = MessageBox.Show(是否将更改保存到 + filename, , MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question); if (result =
10、 DialogResult.Yes) this.保存SToolStripMenuItem_Click(sender, e); else if (result = DialogResult.Cancel) return; richTextBox1.Text = ; filename = 无标题; this.Text = filename + - 文本编辑器; private void 另存为ToolStripMenuItem_Click(object sender, EventArgs e) SaveFileDialog dlgSave = new SaveFileDialog(); dlgSa
11、ve.InitialDirectory = c:tmp; dlgSave.Filter = Word文档(*.rtf)|*.rtf; dlgSave.Title = 保存我的文件; if (dlgSave.ShowDialog() = DialogResult.OK) filename = dlgSave.FileName; richTextBox1.SaveFile(filename, RichTextBoxStreamType.RichText); rtb.Text = richTextBox1.Text; private void 撤销ToolStripMenuItem_Click(object sender, EventArgs e) richTextBox1.Undo(); private void 查找ToolStripMenuItem_Click(object sender, EventArgs e) Formcz cz = new Formcz(richTextBox1);