基于C#的模仿windows记事本程序

学习是我快乐

发布日期: 2020-06-20 14:47:35 浏览量: 74
评分:
star star star star star star star star star star_border
*转载请注明来自write-bug.com

一、实验目的和要求

  • 掌握C#的基本语法

  • 掌握菜单、工具栏和状态栏控件的使用

  • 掌握计时器控件和通用对话框的使用方法

  • 掌握自定义控件的编写和使用方法

  • 掌握窗体交互的方法

二、实验内容和原理

  • 完成C#windows窗体的模拟电脑记事本做一个相关应用

  • 实现记事本的基本功能包括文件打开、保存、另存为、新建、新建窗口、文本的编辑包括撤销、剪切、复制、粘贴、删除等基本功能;格式中的字体设置;查看中的状态栏

  • 在以上的功能上添加了编辑的使用baidu搜索、查找(未完善)、格式的自动换行功能;在窗体方面完全模仿电脑记事本,但存在部分功能为实现,包括文件中页面设置、打印未实现

  • 编辑中查找下(上)一个、替换、转到为实现;编辑中查找功能未完善

三、实验环境

  • 硬件:PC机

  • 软件:windows10、VS2017

四、算法描述及实验步骤

4.1 界面步骤

  • 打开vs2017,创建新项目(windows窗体),项目名称为Form1为主窗体

  • 模仿windows系统下的记事本搭建界面

  • 创建新项目(windows窗体),项目名称为Form2为主窗体

  • 模仿windows系统下的记事本的查询搭建界面

  • 创建新项目(windows窗体),项目名称为Form3为主窗体

  • 加入自己设计的字体设计器界面

4.2 功能实现

4.2.1 保存

利用SaveFileDialog类打开系统文件目录界面;Filter方法的保存类型

  1. saveFileDialog1.Filter = "ext files (*.txt)|*.txt|All files(*.*)|*>**";

当条件

  1. dr == DialogResult.OK && saveFileDialog1.FileName.Length > 0

成立时保存文件。

4.2.2 新建文件

新建一个From1界面。

4.2.3 打开文件

利用组建OpenFileDialog 设置打开格式限制

  1. Filter = "文本文件(*.txt)|*.txt";

利用IO接口的

  1. StreamReader sr = new StreamReader(this.OpenFileDialog1.FileName, System.Text.Encoding.Default);

将文件写入界面中。

4.2.4 保存文件

SaveFileDialog方法打开文件目录;设置保存文件格式限制

  1. saveFileDialog1.Filter = "ext files (*.txt)|*.txt|All files(*.*)|*>**";

4.2.5 另存为文件

通保存文件类似。

4.2.6 字体

点击格式字体是跳出设计的字体设计界面利用委托传值设置字体。

4.2.7 查找

获取textBox1的值,当文件中内容相同时利用richTextBox.Select()方法选中文字。

4.2.8 复制、粘贴、剪切

设置其他复制、粘贴、剪切功能设置相应的函数即可

五、实验结果

新建

首页

打开

保存

未查找到

查找

字体设计

帮助

六、总结

6.1 错误总结

  • 当点击下划线或者删除线的时候,之前设置的字形格式会丢失

  • 在进行委托传参的时候不能按要求修改样式

6.2 解决方案

定义变量fontstr和fontunder分别来判断checkbox是否被选中,新建一个函数为setFont(string s),用来设置FontStyle的格式,在listbox2获取到值后调用函数setFont参数为listbox2.text,在checkbox点击的事件中判断是否被选中,然后修改相应的值,调用setFont函数,参数还是listbox2.text,在setFont中通过判断listbox2.text和fontstr和fontunder的值来确定FontStyle的格式,从而解决了不同操作引起的覆盖。

为givevalue函数设置四个参数,String fontName, float fontSize, FontStyle fontstyle, Color myColor,然后对textbox的Font和ForeColor属性进行修改。

6.3 总结感悟

通过这次的实验,使我对c#的功能有了更深的理解,对一些常用组件有了更好的掌握如单选按钮控件、复选框、列表控件、组合框控件等。通过使用常规组件构造出一个复杂的功能。此外通过本次的实验,我还学习到了一些之前所不懂的内容,窗体之间使用委托来进行数据传输以及对自定义控件的使用方法有了更深的了解。

通过本次的实验,不仅是对现有基础控件有了更深的掌握,也是对接下来学习高级控件的一种很好的铺垫。

上传的附件 cloud_download Note2.rar ( 297.98kb, 3次下载 )
error_outline 下载需要8点积分

发送私信

43
文章数
9
评论数
最近文章
eject