【C#】上机实验八
1. 设计一个窗体应用程序,模拟写字板应用程序的基本功能。具体功能要求如下:
(1)“文件”菜单中有“新建”、“打开”、“保存”、“退出”子菜单。
(2)“编辑”菜单中有“剪切”、“复制”、“粘贴”、“撤销”、“重复”、“全选”子菜单。
(3)工具菜单中有“颜色”、“字体”、“状态栏”功能。
(4)帮助菜单中有“关于”菜单功能。
(5)实现“编辑”菜单中、“工具”栏目中“剪切”、“复制”、“粘贴”、“撤销”、“重复”、“全选”的功能。
(6)实现文件的新建、打开、保存功能。(利用RichTextBox控件)
(7)文件菜单添加打开文本文件、保存文本文件菜单项,实现文件的打开、保存功能。(利用文件读写类)

提示:
(1)添加菜单栏、工具栏、RichTextBox控件。
(2)在打开对话框中要想只显示文本文档,可以在通用对话框Filter属性中设置*.txt类别。richTextBox的LoadFile、SaveFile方法中要指定文件流为RichTextBoxStreamType.PlainText
(3)点击菜单和工具栏相关按钮都实现同一个功能,所以会调用同一个方法。设计一系列公有方法实现相关功能。建议完成一个方法,就运行测试一个方法,问题解决后再编写下一个方法,避免出现太多错误。
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 MyNote
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.toolStripStatusLabel1.Text = "Welcome To My Note";
this.toolStripStatusLabel2.Text = DateTime.Now.ToString(); } #region 自定义方法 public void TextCopy()
{
this.richTextBox1.Copy();
} public void TextCut()
{
this.richTextBox1.Cut();
} public void TextPaste()
{
this.richTextBox1.Paste();
} public void TextUndo()
{
this.richTextBox1.Undo();
} public void TextRedo()
{
this.richTextBox1.Redo();
} public void TextSelectAll()
{
this.richTextBox1.SelectAll();
} public void FileOpenMethod()
{
OpenFileDialog dia = new OpenFileDialog();
dia.Filter = "文本文件(*.txt)|*.txt|所有文件|*.*"; //dia.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
if (dia.ShowDialog() == DialogResult.OK)
{
this.richTextBox1.LoadFile(dia.FileName, RichTextBoxStreamType.PlainText);
this.toolStripStatusLabel1.Text = dia.SafeFileName;
this.toolStripStatusLabel2.Text = DateTime.Now.ToString();
}
} public void FileSaveMethod()
{
SaveFileDialog dia = new SaveFileDialog();
dia.Filter = "文本文件(*.txt)|*.txt|所有文件|*.*"; //dia.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
if (dia.ShowDialog() == DialogResult.OK)
{
this.richTextBox1.SaveFile(dia.FileName, RichTextBoxStreamType.PlainText);
}
} public void About()
{
AboutBox1 dia = new AboutBox1();
dia.ShowDialog();
}
#endregion #region 菜单栏方法
private void 新建ToolStripMenuItem_Click(object sender, EventArgs e)
{
this.toolStripStatusLabel1.Text = "New blank Page";
this.toolStripStatusLabel2.Text = DateTime.Now.ToString();
this.richTextBox1.Text = "";
} private void 打开ToolStripMenuItem_Click(object sender, EventArgs e)
{
FileOpenMethod();
} private void 保存ToolStripMenuItem_Click(object sender, EventArgs e)
{
FileSaveMethod();
} private void 剪切ToolStripMenuItem_Click(object sender, EventArgs e)
{
TextCut();
}
private void 复制ToolStripMenuItem_Click(object sender, EventArgs e)
{
TextCopy();
} private void 粘贴ToolStripMenuItem_Click(object sender, EventArgs e)
{
TextPaste();
} private void 撤销ToolStripMenuItem_Click(object sender, EventArgs e)
{
TextUndo();
} private void 重复ToolStripMenuItem_Click(object sender, EventArgs e)
{
TextRedo();
}
private void 全选ToolStripMenuItem_Click(object sender, EventArgs e)
{
TextSelectAll();
} private void 颜色ToolStripMenuItem_Click(object sender, EventArgs e)
{
ColorDialog dia = new ColorDialog();
dia.Color = this.richTextBox1.SelectionColor;
if (dia.ShowDialog() == DialogResult.OK)
{
this.richTextBox1.SelectionColor = dia.Color;
}
} private void 字体ToolStripMenuItem_Click(object sender, EventArgs e)
{
FontDialog dia = new FontDialog();
dia.Font = this.richTextBox1.SelectionFont;
dia.Color = this.richTextBox1.SelectionColor;
dia.ShowColor = true;
if (dia.ShowDialog() == DialogResult.OK)
{
this.richTextBox1.SelectionFont = dia.Font;
this.richTextBox1.SelectionColor = dia.Color;
}
} private void 状态框ToolStripMenuItem_Click(object sender, EventArgs e)
{
this.statusStrip1.Visible = !this.statusStrip1.Visible;
状态框ToolStripMenuItem.Checked = this.statusStrip1.Visible;
} private void 关于ToolStripMenuItem_Click(object sender, EventArgs e)
{
About();
} private void 退出ToolStripMenuItem_Click(object sender, EventArgs e)
{
Application.Exit();
} #endregion #region 工具栏方法 //新建按键
private void toolStripButton1_Click(object sender, EventArgs e)
{
this.toolStripStatusLabel1.Text = "New blank Page";
this.toolStripStatusLabel2.Text = DateTime.Now.ToString();
this.richTextBox1.Text = "";
} //打开按键
private void toolStripButton2_Click(object sender, EventArgs e)
{
FileOpenMethod();
} //保存按键
private void toolStripButton3_Click(object sender, EventArgs e)
{
FileSaveMethod();
} //复制按钮
private void toolStripButton4_Click(object sender, EventArgs e)
{
TextCopy();
} //剪切按钮
private void toolStripButton5_Click(object sender, EventArgs e)
{
TextCut();
} //粘贴按钮
private void toolStripButton6_Click(object sender, EventArgs e)
{
TextPaste();
} //撤销按钮
private void toolStripButton7_Click(object sender, EventArgs e)
{
TextUndo();
} //重复按钮
private void toolStripButton8_Click(object sender, EventArgs e)
{
TextRedo();
} private void toolStripButton9_Click(object sender, EventArgs e)
{
About();
}
#endregion
}
}
MyNote
【C#】上机实验八的更多相关文章
- Linux基础入门(新版)(实验五至实验八)
实验五 环境变量与文件查找 (环境变量的作用与用法,及几种搜索文件的方法) 一.环境变量 1.变量 (1)常变量与值是一对一的关系 (2)变量的作用域即变量的有效范围(比如一个函数中.一个源文 ...
- lingo运筹学上机实验指导
<运筹学上机实验指导>分为两个部分,第一部分12学时,是与运筹学理论课上机同步配套的4个实验(线性规划.灵敏度分析.运输问题与指派问题.最短路问题和背包问题)的Excel.LONGO和LI ...
- 算法课上机实验(一个简单的GUI排序算法比较程序)
(在家里的电脑上Linux Deepin截的图,屏幕大一点的话,deepin用着还挺不错的说) 这个应该是大二的算法课程上机实验时做的一个小程序,也是我的第一个GUI小程序,实现什么的都记不清了,只记 ...
- 实验八 Web基础 SQL注入原理
实验八 Web基础 实验要求 (1)Web前端HTML 能正常安装.启停Apache.理解HTML,理解表单,理解GET与POST方法,编写一个含有表单的HTML. (2)Web前端javascipt ...
- 2017-2018-2 20155228 《网络对抗技术》 实验八:Web基础
2017-2018-2 20155228 <网络对抗技术> 实验八:Web基础 1. 实践内容 1.1 Web前端HTML 能正常安装.启停Apache.理解HTML,理解表单,理解GET ...
- 计算机网络实验八实验报告——应用Packet Tracer 5.0模拟器工具对WLAN进行配置
计算机网络实验八实验报告 一.实验目的 1.熟练使用Packet Tracer 5.0模拟器: 2.应用Packet Tracer 5.0模拟器工具对WLAN进行配置. 二.实验环境 一台PC机. 模 ...
- 实验八 应用层协议Ⅱ-FTP协议分析
实验八 应用层协议Ⅱ-FTP协议分析 一.实验目的 1.掌握FTP协议的实现原理. 2.了解控制通道和数据通道. 二.实验内容 用WareShark追踪ftp连接. 1.三次握手 2.ftp服务器回发 ...
- 2017-2018-2 20155225《网络对抗技术》实验八 Web基础
2017-2018-2 20155225<网络对抗技术>实验八 Web基础 1.Web前端HTML 输入命令apachectl start打开apahce,并使用netstat -aptn ...
- 20155201 网络攻防技术 实验八 Web基础
20155201 网络攻防技术 实验八 Web基础 一.实践内容 Web前端HTML,能正常安装.启停Apache.理解HTML,理解表单,理解GET与POST方法,编写一个含有表单的HTML. We ...
随机推荐
- Mysql 创建只读账户
mysql 创建只读账户: 1.查询所有账号信息 SELECT DISTINCT a.`User`,a.`Host`,a.password_expired,a.password_last_change ...
- GoCN每日新闻(2019-10-13)
GoCN每日新闻(2019-10-13) 1. 通过测试学习Go语言 https://mp.weixin.qq.com/s/MGT_yoP_NdWVGpwlAJFK4A2. go panic reco ...
- 图解CRM(客户关系管理)全流程
https://blog.csdn.net/lylmwt/article/details/84921432
- 去参加了十四届D2前端大会~
朋友喊我去一起去d2,原来一直在加班,没有想去的动力,后来业务上线,幸运的入手了别人转的一张票(也不便宜啊)- 讲了五个挑战 端侧渲染体系的重塑,从PC时代到无线时代,再到未来的IOT时代,在渲染方面 ...
- Fluent也弹窗
具体步骤见<fluent加载第三方(C++,Fortran等)动态链接库> 我们对导入的动态链接库进行改动 打开VS2013 源代码: #include #ifdef __cplusplu ...
- LOL佐伊官方手办
花199元在某宝上买的官方正版佐伊手办终于到了,话不多说直接上图! 虽然脸有点不切实际的大,但还是很可爱~
- win10如何删除自己设置过的头像
把 %appdata%\Microsoft\Windows\AccountPictures 输入到地址栏 然后删除你想删除的照片即可
- axios与ajax的区别及中文用户指南
Ajax: Ajax 即“Asynchronous Javascript And XML”(异步 JavaScript 和 XML),是指一种创建交互式网页应用的网页开发技术. $.ajax({ ty ...
- PostgreSQL中的一些日志
1.Write Ahead Log(WAL日志)预写日志(WAL)是保证数据完整性的标准方法.在有关交易处理的大多数(如果不是全部)书籍中都可以找到详细说明. 简而言之,WAL的核心概念是,只有在记录 ...
- Jenkins 设置 源码库浏览器
玩转Jenkins - 源码库浏览器功能如何使用 - 简书https://www.jianshu.com/p/22f72effb4ef Jenkins上踩过的那些坑 - 简书https://www.j ...