1. 设计一个窗体应用程序,模拟写字板应用程序的基本功能。具体功能要求如下:

(1)“文件”菜单中有“新建”、“打开”、“保存”、“退出”子菜单。

(2)“编辑”菜单中有“剪切”、“复制”、“粘贴”、“撤销”、“重复”、“全选”子菜单。

(3)工具菜单中有“颜色”、“字体”、“状态栏”功能。

(4)帮助菜单中有“关于”菜单功能。

(5)实现“编辑”菜单中、“工具”栏目中“剪切”、“复制”、“粘贴”、“撤销”、“重复”、“全选”的功能。

(6)实现文件的新建、打开、保存功能。(利用RichTextBox控件)

(7)文件菜单添加打开文本文件、保存文本文件菜单项,实现文件的打开、保存功能。(利用文件读写类)

提示:

1)添加菜单栏、工具栏、RichTextBox控件。

2)在打开对话框中要想只显示文本文档,可以在通用对话框Filter属性中设置*.txt类别。richTextBoxLoadFileSaveFile方法中要指定文件流为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#】上机实验八的更多相关文章

  1. Linux基础入门(新版)(实验五至实验八)

    实验五 环境变量与文件查找 (环境变量的作用与用法,及几种搜索文件的方法)   一.环境变量   1.变量 (1)常变量与值是一对一的关系 (2)变量的作用域即变量的有效范围(比如一个函数中.一个源文 ...

  2. lingo运筹学上机实验指导

    <运筹学上机实验指导>分为两个部分,第一部分12学时,是与运筹学理论课上机同步配套的4个实验(线性规划.灵敏度分析.运输问题与指派问题.最短路问题和背包问题)的Excel.LONGO和LI ...

  3. 算法课上机实验(一个简单的GUI排序算法比较程序)

    (在家里的电脑上Linux Deepin截的图,屏幕大一点的话,deepin用着还挺不错的说) 这个应该是大二的算法课程上机实验时做的一个小程序,也是我的第一个GUI小程序,实现什么的都记不清了,只记 ...

  4. 实验八 Web基础 SQL注入原理

    实验八 Web基础 实验要求 (1)Web前端HTML 能正常安装.启停Apache.理解HTML,理解表单,理解GET与POST方法,编写一个含有表单的HTML. (2)Web前端javascipt ...

  5. 2017-2018-2 20155228 《网络对抗技术》 实验八:Web基础

    2017-2018-2 20155228 <网络对抗技术> 实验八:Web基础 1. 实践内容 1.1 Web前端HTML 能正常安装.启停Apache.理解HTML,理解表单,理解GET ...

  6. 计算机网络实验八实验报告——应用Packet Tracer 5.0模拟器工具对WLAN进行配置

    计算机网络实验八实验报告 一.实验目的 1.熟练使用Packet Tracer 5.0模拟器: 2.应用Packet Tracer 5.0模拟器工具对WLAN进行配置. 二.实验环境 一台PC机. 模 ...

  7. 实验八 应用层协议Ⅱ-FTP协议分析

    实验八 应用层协议Ⅱ-FTP协议分析 一.实验目的 1.掌握FTP协议的实现原理. 2.了解控制通道和数据通道. 二.实验内容 用WareShark追踪ftp连接. 1.三次握手 2.ftp服务器回发 ...

  8. 2017-2018-2 20155225《网络对抗技术》实验八 Web基础

    2017-2018-2 20155225<网络对抗技术>实验八 Web基础 1.Web前端HTML 输入命令apachectl start打开apahce,并使用netstat -aptn ...

  9. 20155201 网络攻防技术 实验八 Web基础

    20155201 网络攻防技术 实验八 Web基础 一.实践内容 Web前端HTML,能正常安装.启停Apache.理解HTML,理解表单,理解GET与POST方法,编写一个含有表单的HTML. We ...

随机推荐

  1. Lightning Web Components 组合(五)

    使用组合我们可以用来设计复杂的组件. 组合一些比较小的组件,可以增加组件的重新性以及可维护性. 通过以下一个简单的demo,将会展示关于owner 以及container 的概念,在实际的项目中 ex ...

  2. [RN] React Native 查看console打印出来的内容

    我们在调试React Native 程序的时候,经常会用到Js的打印语句Console.log等 但我们一脸蒙逼的时候,启动的时候完全看不到打印的内容在哪儿呢??? 原来还要在命令行下输入一个语句才能 ...

  3. struct udphdr

    udphdr结构包含在/usr/src/linux/include/linux/udp.h struct udphdr { __u16 source; __u16 dest; __u16 len; _ ...

  4. 【BIEE】报表导出数据只显示500行,如何解决?

    BIEE报表展示的时候每页只显示500行,进而导致导出的时候也只能导出500行,客户抱怨:每次只能导出500行,导出后还得自己合并! 解决思路: 1.找到路径$BIEE_HOME\instances\ ...

  5. [开源] FreeSql.AdminLTE.Tools 根据实体类生成后台管理代码

    前言 FreeSql 发布至今已经有9个月,功能渐渐完善,自身的生态也逐步形成,早在几个月前写过一篇文章<ORM 开发环境之利器:MVC 中间件 FreeSql.AdminLTE>,您可以 ...

  6. Web前端开发规范之图片命名规范

    图片的名称分为头尾两部分,用下划线隔开,头部表示此图片的大类性质,例如广告,标志,菜单,按钮等 banner:放置在页面顶部的广告,装饰图案等长方形的图片 logo:标志性的图片 button:在页面 ...

  7. git的commit撤销

    写完代码后,我们一般这样 git add . //添加所有文件 git commit -m "本功能全部完成" 执行完commit后,想撤回commit,怎么办? 这样凉拌: gi ...

  8. 为什么使用css3和div布局?

    1,代码精简(没有本身自带的一些属性,容易设置样式)2,解决了table表格的嵌套问题3,速度问题(页面代码减少,增加了编写代码的速度)4 ,对排名的影响,基于xhtml标准的div+css布局会更快 ...

  9. PostgreSQL中的索引(一)

    引言 这一系列文章主要关注PostgreSQL中的索引. 可以从不同的角度考虑任何主题.我们将讨论那些使用DMBS的应用开发人员感兴趣的事项:有哪些可用的索引:为什么会有这么多不同的索引:以及如何使用 ...

  10. docker 安装redis cluster集群

    安装Redis镜像 docker pull yyyyttttwwww/redis 创建redis容器 docker run -it -d --name r1 -p 5001:6379 --net=ne ...