C#文本编辑器 实验报告.doc_第1页
C#文本编辑器 实验报告.doc_第2页
C#文本编辑器 实验报告.doc_第3页
C#文本编辑器 实验报告.doc_第4页
C#文本编辑器 实验报告.doc_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验3 文本编辑器【实验目的】n 进一步实践windows窗口程序开发的流程;n 掌握并熟练使用RichTextBox、Button、MenuTrip控件。【实验环境】 Visual Studio 2005(或更高版本)【实验内容】设计一个基于RichTextBox的文本编辑器,要求实现文件打开、保存、字体和颜色修改、字符查找和替换功能,鼓励扩展其他功能。【实验结果】文件菜单:打开程序编辑文本-文件-保存保存结果:编辑文本:文件-打开(文件已修改打开询问保存)点击“是”-继续打开此文件(点击“取消”或者关闭提示则不执行打开 “否”则不保存)打开后:(上次打开操作保存结果在本次打开中体现)文件-另存为另存为结果:编辑文本文件-退出(退出提示保存)点击“否”(点击“取消”或者关闭提示则不执行退出 “是”则保存)设置文件打开方式为 本实验程序双击文件:使用本实验程序进行打开(由于上一次退出前选择“否”文本没有保存“准备退出”)不修改文本 文件-退出(由于文件没有修改不提示保存直接退出 关闭窗口同理)编辑菜单:编辑-查找(不演示撤销等操作、没有查找内容“查找下一个”处于禁用)输入查找内容 点击“查找下一个”:再次点击“查找下一个”:打钩 区分大小写 选择方向向上两次点击“查找下一个”:取消打钩 区分大小写编辑-查找(没有查找内容和替换“查找下一个”“替换”.处于禁用)打钩 区分大小写 输入查找内容和替换内容 点击两次替换取消打钩 区分大小写 点击全部替换格式菜单:格式-字体确定后:格式-颜色确定后:格式-对齐方式全选 格式-对齐方式-右对齐(不演示居中)帮助-关于【实验核心代码】 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 FileEdit 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 result = 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; 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, EventArgs 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 = 无标题)? SaveFileDialog 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, RichTextBoxStreamType.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 = 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(); dlgSave.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); cz.Owner = this; cz.Show(); private void 替换ToolStripMenuItem_Click(object sender, EventArgs e) Formth th = new Formth(); th.Textbox = richTextBox1; th.Owner = this; th.Show(); private void 字体ToolStripMenuItem_Click(object sender, EventArgs e) FontDialog dlgFont = new FontDialog(); dlgFont.ShowColor = true; dlgFont.ShowApply = true; if (richTextBox1.SelectionLength 0) dlgFont.Font = richTextBox1.SelectionFont; dlgFont.Color = richTextBox1.SelectionColor; else dlgFont.Font = richTextBox1.Font; dlgFont.Color = richTextBox1.ForeColor; if (dlgFont.ShowDialog() = DialogResult.OK) if (richTextBox1.SelectionLength 0) richTextBox1.SelectionFont = dlgFont.Font; richTextBox1.SelectionColor = dlgFont.Color; else richTextBox1.Font = dlgFont.Font; richTextBox1.ForeColor = dlgFont.Color; private void 颜色ToolStripMenuItem_Click(object sender, EventArgs e) ColorDialog dlgColor = new ColorDialog(); if (richTextBox1.SelectionLength 0) dlgColor.Color = richTextBox1.SelectionColor; else dlgColor.Color = richTextBox1.ForeColor; if (dlgColor.ShowDialog() = DialogResult.OK) if (richTextBox1.SelectionLength 0) richTextBox1.SelectionColor = dlgColor.Color; else richTextBox1.ForeColor = dlgColor.Color; private void 左对齐ToolStripMenuItem_Click(object sender, EventArgs e) 右对齐ToolStripMenuItem.Checked = false; 居中ToolStripMenuItem.Checked = false; richTextBox1.SelectionAlignment = HorizontalAlignment.Left; private void 右对齐ToolStripMenuItem_Click(object sender, EventArgs e) 左对齐ToolStripMenuItem.Checked = false; 居中ToolStripMenuItem.Checked = false; richTextBox1.SelectionAlignment = HorizontalAlignment.Right; private void 居中ToolStripMenuItem_Click(object sender, EventArgs e) 左对齐ToolStripMenuItem.Checked = false; 右对齐ToolStripMenuItem.Checked = false; richTextBox1.SelectionAlignment = HorizontalAlignment.Center; private void 关于ToolStripMenuItem1_Click(object sender, EventArgs e) MessageBox.Show(作者:软件1201 58号 林鑫杰n编写时间:2014年9月28, 关于, MessageBoxButtons.OK, MessageBoxIcon.Information); private void Form1_Load(object sender, EventArgs e) richTextBox1.Text = ; rtb.Text = richTextBox1.Text; if (filename = null) filename = 无标题; this.Text = filename + - 文本编辑器; else richTextBox1.LoadFile(filename, RichTextBoxStreamType.RichText); rtb.Text = richTextBox1.Text; this.Text = filename.Substring(filename.LastIndexOf() + 1) + - 文本编辑器; private void Form1_FormClosing(object sender, FormClosingEventArgs e) if (!richTextBox1.Text.Equals(rtb.Text) DialogResult result = MessageBox.Show(是否将更改保存到 + filename, 退出, MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question); if (result = DialogResult.No) e.Cancel = false; else if (result = DialogResult.Yes) this.保存SToolStripMenuItem_Click(sender, e); private void 退出ToolStripMenuItem_Click(object sender, EventArgs e) this.Close(); private void 全选ToolStripMenuItem_Click(object sender, EventArgs e) richTextBox1.SelectAll(); Form2(查找窗口):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 FileEdit public partial class Formcz : Form private RichTextBox textbox; private static int i; private static int j; public Formcz(RichTextBox textbox) InitializeComponent(); this.textbox = textbox; j = textbox.Text.Length; i = 0; private void button1_Click(object sender, EventArgs e) if (radioButton1.Checked) if (checkBox1.Checked) j = textbox.Find(textBox1.Text, 0, j, RichTextBoxFinds.Reverse | RichTextBoxFinds.MatchCase); else j = textbox.Find(textBox1.Text, 0, j, RichTextBoxFinds.Reverse | RichTextBoxFinds.WholeWord); else if (checkBox1.Checked) i = textbox.Find(textBox1.Text, i, RichTextBoxFinds.MatchCase); else i = textbox.Find(textBox1.Text, i, RichTextBoxFinds.WholeWord); if (i = -1) i = 0; else i += textBox1.Text.Length; textbox.Focus(); if (j = 0) j = textbox.Text.Length; else textbox.Focus(); private void button2_Click(object sender, EventArgs e) this.Close(); private void textBox1_TextChanged(object sender, EventArgs e) if (this.textBox1.Text != ) this.button1.Enabled = true; else this.button1.Enabled = false; private void radioButton2_CheckedChanged(object sender, EventArgs e) if (radioButton2.Checked = true) radioButton2.Checked = false; else radioButton1.Checked = true; j = textbox.Text.Length; i = 0; private void radioButton2_CheckedChanged_1(object sender, EventArgs e) j = textbox.Text.Length; i = 0; Form3(替换窗口):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 FileEdit public partial class Formth : Form private RichTextBox textbox; public RichTextBox Textbox get return this.textbox; set this.textbox = value; private int i; public Formth() InitializeComponent(); private void button1_Click(object sender, EventArgs e) if (checkBox1.Checked) i = textbox.Find(textBox1.Text, i, RichTextBoxFinds.MatchCase); else i = textbox.Find(textBox1.Text, i, RichTextBoxFinds.None); if (i = -1) i = 0; else i += textBox1.Text.Length; textbox.Focus(); private void button2_Click(object sender, EventArgs e) if (checkBox1.Checked) i = textbox.Find(textBox1.Text, i, RichTextBoxFinds.MatchCase); else i = textbox.Find(textBox1.Text, i, RichTextBoxFinds.None); if (i = -1) i = 0; else textbox.SelectedText = textBox2.Text; i += textBox1.Text.Length; textbox.Focus(); private void button3_Click(objec

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论