# 基于C#的模仿windows记事本程序
# 一、实验目的和要求
- 掌握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方法的保存类型
```c#
saveFileDialog1.Filter = "ext files (*.txt)|*.txt|All files(*.*)|*>**";
```
当条件
```c#
dr == DialogResult.OK && saveFileDialog1.FileName.Length > 0
```
成立时保存文件。
### 4.2.2 新建文件
新建一个From1界面。
### 4.2.3 打开文件
利用组建OpenFileDialog 设置打开格式限制
```c#
Filter = "文本文件(*.txt)|*.txt";
```
利用IO接口的
```c#
StreamReader sr = new StreamReader(this.OpenFileDialog1.FileName, System.Text.Encoding.Default);
```
将文件写入界面中。
### 4.2.4 保存文件
SaveFileDialog方法打开文件目录;设置保存文件格式限制
```c#
saveFileDialog1.Filter = "ext files (*.txt)|*.txt|All files(*.*)|*>**";
```
### 4.2.5 另存为文件
通保存文件类似。
### 4.2.6 字体
点击格式字体是跳出设计的字体设计界面利用委托传值设置字体。
### 4.2.7 查找
获取textBox1的值,当文件中内容相同时利用richTextBox.Select()方法选中文字。
### 4.2.8 复制、粘贴、剪切
设置其他复制、粘贴、剪切功能设置相应的函数即可
# 五、实验结果
**新建**
![](http://www.writebug.com/myres/static/uploads/2021/10/19/995c704c5727b637d74017b1cbeb9161.writebug)
**首页**
![](http://www.writebug.com/myres/static/uploads/2021/10/19/62ca63f4396fb547df50321ba5f9dbea.writebug)
**打开**
![](http://www.writebug.com/myres/static/uploads/2021/10/19/b490fa1b7fb715c06457457ce162f669.writebug)
**保存**
![](http://www.writebug.com/myres/static/uploads/2021/10/19/fe195346401e551a8c284cdff5e9f383.writebug)
**未查找到**
![](http://www.writebug.com/myres/static/uploads/2021/10/19/eb56760560b49150d09fe0bf983d057e.writebug)
**查找**
![](http://www.writebug.com/myres/static/uploads/2021/10/19/fde6d236d6addf517a64df22bfec1c76.writebug)
**字体设计**
![](http://www.writebug.com/myres/static/uploads/2021/10/19/fb5b1951041d30c501c8c00ea1da80a3.writebug)
**帮助**
![](http://www.writebug.com/myres/static/uploads/2021/10/19/f8c8adb8159c297f2c176f36146029f4.writebug)
# 六、总结
## 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#的功能有了更深的理解,对一些常用组件有了更好的掌握如单选按钮控件、复选框、列表控件、组合框控件等。通过使用常规组件构造出一个复杂的功能。此外通过本次的实验,我还学习到了一些之前所不懂的内容,窗体之间使用委托来进行数据传输以及对自定义控件的使用方法有了更深的了解。
通过本次的实验,不仅是对现有基础控件有了更深的掌握,也是对接下来学习高级控件的一种很好的铺垫。
精选_毕业设计_基于C#的模仿windows记事本程序_完整源码
版权申诉
8 浏览量
2022-03-05
20:52:54
上传
评论
收藏 612KB ZIP 举报
工具盒子
- 粉丝: 58
- 资源: 1313
最新资源
- 5uonly.apk
- 2023-04-06-项目笔记 - 第一百十九阶段 - 4.4.2.117全局变量的作用域-117 -2024.04.30
- 2023-04-06-项目笔记 - 第一百十九阶段 - 4.4.2.117全局变量的作用域-117 -2024.04.30
- 前端开发技术实验报告:内含4四实验&实验报告
- Highlight Plus v20.0.1
- 林周瑜-论文.docx
- 基于MIC+NE555光敏电阻的声光控电路Multisim仿真原理图
- 基于JSP毕业设计-基于WEB操作系统课程教学网站的设计与实现(源代码+论文).zip
- 基于LM324和LM386的音响放大器Multisim仿真+PCB电路原理图
- Python机器学习与数据挖掘环境配置与库验证
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈