




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
用C#编写“文本编辑器”实验报告实验 3 项目名称: 文本编辑器 1、实验目的和要求通过本实验,使得学生理解操作系统目录与文件的概念,掌握文件流的读写操作。要求编写一个满足以下条件的文本编辑器程序。(1)程序界面与操作系统中的记事本界面类似。(2)程序可以打开、保存和编辑txt文本文件。(3)程序可以查找和替换文本内容中的指定字符串2、程序代码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;using System.IO;namespace 记事本 public partial class frmNotepad : Form bool b = false;/布尔变量b用于判断文件是新建的还是从磁盘打开。true表示文件从磁盘打开的,false表示文件是新建的,默认值为false bool s = true;/布尔变量s用于判断文件是否被保存。false表示未被保存,默认值为true public frmNotepad() InitializeComponent(); /*多格式文本框TextChange的事件代码*/ private void rtxtNotepad_TextChanged(object sender, EventArgs e) /文本被修改后,设置s为false,表示文件未被保存 s = false; /*【新建】菜单代码*/ private void tsmiNew_Click(object sender, EventArgs e) /判断当前文件是否从磁盘打开,或者新建时文档不为空,并且文件未被保存 if (b = true | rtxtNotepad.Text.Trim() != ) /若文件未被保存 if (s = false) string result; result = MessageBox.Show(文件尚未保存,是否保存?, 保存文件, MessageBoxButtons.YesNoCancel).ToString(); switch (result) case Yes: /若文件是从磁盘打开的 if (b = true) /按文件打开的路径保存文件 rtxtNotepad.SaveFile(odlgNotepad.FileName); /若文件不是从磁盘打开的 else if (sdlgNotepad.ShowDialog() = DialogResult.OK) rtxtNotepad.SaveFile(sdlgNotepad.FileName); s = true; rtxtNotepad.Text = ; break; case No: b = false; rtxtNotepad.Text = ; break; /*【打开】菜单代码*/ private void tsmiOpen_Click(object sender, EventArgs e) if (b = true | rtxtNotepad.Text.Trim() != ) string result; result = MessageBox.Show(文件尚未保存,是否保存?, 保存文件, MessageBoxButtons.YesNoCancel).ToString(); switch (result) case Yes: if (b = true) rtxtNotepad.SaveFile(odlgNotepad.FileName); else if (sdlgNotepad.ShowDialog() = DialogResult.OK) rtxtNotepad.SaveFile(sdlgNotepad.FileName); s = true; rtxtNotepad.Text = ; break; case No: b = false; rtxtNotepad.Text = ; break; odlgNotepad.RestoreDirectory = true; if (odlgNotepad.ShowDialog() = DialogResult.OK) & odlgNotepad.FileName != ) rtxtNotepad.LoadFile(odlgNotepad.FileName); b = true; s = true; /*【保存】菜单代码*/ private void tsmiSave_Click(object sender, EventArgs e) /若文件从磁盘打开并且修改了其内容 if (b = true & rtxtNotepad.Modified = true) rtxtNotepad.SaveFile(odlgNotepad.FileName); s = true; else if (b = false & rtxtNotepad.Text.Trim() != & sdlgNotepad.ShowDialog() = DialogResult.OK) rtxtNotepad.SaveFile(sdlgNotepad.FileName); s = true; b = true; odlgNotepad.FileName = sdlgNotepad.FileName; /*【另存为】菜单代码*/ private void tsmiSaveAs_Click(object sender, EventArgs e) if (sdlgNotepad.ShowDialog() = DialogResult.OK) rtxtNotepad.SaveFile(sdlgNotepad.FileName); s = true; /*【退出】菜单代码*/ private void tsmiClose_Click(object sender, EventArgs e) Application.Exit(); /【撤销】菜单代码 private void tsmiUndo_Click(object sender, EventArgs e) rtxtNotepad.Undo(); /【复制】菜单代码 private void tsmiCopy_Click(object sender, EventArgs e) rtxtNotepad.Copy(); /【剪切】菜单代码 private void tsmiCut_Click(object sender, EventArgs e) rtxtNotepad.Cut(); /【粘贴】菜单代码 private void tsmiPaste_Click(object sender, EventArgs e) rtxtNotepad.Paste(); /【全选】菜单代码 private void tsmiSelectAll_Click(object sender, EventArgs e) rtxtNotepad.SelectAll(); /【日期】菜单代码 private void tsmiDate_Click(object sender, EventArgs e) rtxtNotepad.AppendText(System.DateTime.Now.ToString(); /【自行换行】菜单代码 private void tsmiAuto_Click(object sender, EventArgs e) if (tsmiAuto.Checked = false) tsmiAuto.Checked = true;/选中该菜单项 rtxtNotepad.WordWrap = true;/设置为自动换行 else tsmiAuto.Checked = false; rtxtNotepad.WordWrap = false; /【字体】菜单代码 private void tsmiFont_Click(object sender, EventArgs e) fdlgNotepad.ShowColor = true; if (fdlgNotepad.ShowDialog() = DialogResult.OK) rtxtNotepad.SelectionColor = fdlgNotepad.Color; rtxtNotepad.SelectionFont = fdlgNotepad.Font; /【工具栏】菜单代码 private void tsmiToolStrip_Click(object sender, EventArgs e) Point point; if (tsmiToolStrip.Checked = true) point = new Point(0, 25);/隐藏工具栏时,把坐标设为(0,25),因为菜单的高度为24 tsmiToolStrip.Checked = false; tlsNotepad.Visible = false; rtxtNotepad.Location = point;/设置多格式文本框左上角的位置 rtxtNotepad.Height += tlsNotepad.Height;/隐藏工具栏后,增加文本框的高度 else /显示工具栏时,多格式文本框左上角的位置为(0,50),因为工具栏的高度25加上菜单的高度25=50 point = new Point(0, 50); tsmiToolStrip.Checked = true; tlsNotepad.Visible = true; rtxtNotepad.Location = point; rtxtNotepad.Height -= tlsNotepad.Height; /【状态栏】菜单代码 private void tsmiStatusStrip_Click(object sender, EventArgs e) if (tsmiStatusStrip.Checked = true) tsmiStatusStrip.Checked = false; stsNotepad.Visible = false; rtxtNotepad.Height += stsNotepad.Height; else tsmiStatusStrip.Checked = true; stsNotepad.Visible = true; rtxtNotepad.Height -= stsNotepad.Height; /【关于记事本】菜单代码 private void tsmiAbout_Click(object sender, EventArgs e) frmAbout ob_FrmAbout = new frmAbout(); ob_FrmAbout.Show(); private void tlsNotepad_ItemClicked(object sender, ToolStripItemClickedEventArgs e) int n;/变量n用来接收按下按钮的索引号 n = tlsNotepad.Items.IndexOf(e.ClickedItem); switch (n) case 1: tsmiNew_Click(sender, e); break; case 2: tsmiOpen_Click(sender, e); break; case 3: tsmiSave_Click(sender, e); break; case 4: tsmiCut_Click(sender, e); break; case 5: tsmiCopy_Click(sender, e); break; case 6: tsmiPaste_Click(sender, e); break; case 7: tsmiAbout_Click(sender, e); break; /计时器控件代码 private void tmrNotepad_Tick(object sender, EventArgs e) tssLbl
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025广东东莞银行惠州分行招聘笔试模拟试题及答案解析
- 新兴媒体广告投放策略研究报告
- 2025浙江嘉兴嘉善县中新产业发展投资有限公司招聘工作人员5人笔试备考题库及答案解析
- 2025年中国电信股份有限公司亳州分公司外包人员招聘1人考试参考题库附答案解析
- 2025广西北海市残疾人康复培训中心招录公益性岗位人员4人笔试模拟试题及答案解析
- 2025湖南常德芙蓉大亚化纤有限公司招聘6人考试备考试题及答案解析
- 2025云南大理古城招聘笔试备考试题及答案解析
- 2025年策划保密协议正式解约文案
- 2025年西城区卫生健康系统事业单位第三批招聘工作人员213人考试模拟试题及答案解析
- 2025年技术服务合同模板
- 2025年汽车驾驶员技师资格证书考试及考试题库含答案
- 化工防护用品知识培训课件
- 2025年病原生物与免疫学基础考卷试卷考题试题(附答案)
- (2025年标准)分次支付协议书
- 2025年蜀道投资集团有限责任公司人员招聘笔试备考题库附答案详解(考试直接用)
- 2025年高考(陕西、山西、青海、宁夏卷)历史真题及答案
- 关于奶茶店转让合同范本
- 2025年保税区面试题目及答案
- 护士急诊重症外出学习汇报
- 公安基础知识培训课件
- 2025年期货高管考试题库及答案
评论
0/150
提交评论