【转载】用C#编写一个简单的记事本
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms; namespace Notepad
{
public partial class frmNotepad : Form
{
//***********************************************************************
/*布尔变量b用于判断文件是新建的还是从磁盘打开的 true 表示从磁盘打开,false表示文件是新建的,默认值为false*/
bool b = false;
/*布尔变量s用于判断文件是否被保存 true 表示已经被保存,false表示未被保存,默认值为true*/
bool s = true;
//*********************************************************************** public frmNotepad()
{
InitializeComponent();
richTextBox1.Text = "";
} //*************************************************************************
// 多格式文本框的TextChanged事件代码
//*************************************************************************
private void richTextBox1_TextChanged(object sender, EventArgs e)
{
//文本框被修改后,设置s为false,表示文件未保存
s = false;
} //*************************************************************************
// 【文件】菜单各菜单项的单击代码
//*************************************************************************
//*************************************************************************
// 【新建】菜单代码
//*************************************************************************
private void 新建NToolStripMenuItem_Click(object sender, EventArgs e)
{
//判断当前文件是否是从磁盘打开,或者新建时文档不为空,并且文件未被保存
if(b == true || richTextBox1.Text.Trim() != "")
{
//若文件未保存
if(s == false)
{
string result;
result = MessageBox.Show("文件尚未保存,是否保存?", "保存文件", MessageBoxButtons.YesNoCancel).ToString();
switch(result)
{
case"Yes":
//若文件是从磁盘打开的
if(b == true)
{
//按文件打开的路径保存文件
richTextBox1.SaveFile(sdlgNotepad.FileName);
}else if(sdlgNotepad.ShowDialog()==DialogResult.OK)
{
richTextBox1.SaveFile(sdlgNotepad.FileName);
}
s = true;
richTextBox1.Text = "";
break;
case"No":
b = false;
richTextBox1.Text = "";
break;
}
}
}
} //*************************************************************************
// 【保存】菜单代码
//*************************************************************************
private void 保存SToolStripMenuItem_Click(object sender, EventArgs e)
{
//若文件从磁盘打开并且修改了其中内容
if(b == true && richTextBox1.Modified == true)
{
richTextBox1.SaveFile(odlgNotepad.FileName);
s = true;
}
else if(b == false && richTextBox1.Text.Trim() != "" &&sdlgNotepad.ShowDialog() == DialogResult.OK)
{
//保存文件
richTextBox1.SaveFile(sdlgNotepad.FileName);
s = true;
b = true;
odlgNotepad.FileName = sdlgNotepad.FileName;
}
} //*************************************************************************
// 【打开】菜单代码
//*************************************************************************
private void 打开OToolStripMenuItem_Click(object sender, EventArgs e)
{
//判断当前文件是否是从磁盘打开,或者新建时文档不为空,并且文件未被保存
try
{
if (b == true || richTextBox1.Text.Trim() != "")
{
if (s == false)
{
string result;
result = MessageBox.Show("文件尚未保存,是否保存?", "保存文件", MessageBoxButtons.YesNoCancel).ToString();
switch (result)
{
case "Yes":
//若文件是从磁盘打开的
if (b == true)
{
//按文件打开的路径保存文件
richTextBox1.SaveFile(sdlgNotepad.FileName);
}
else if (sdlgNotepad.ShowDialog() == DialogResult.OK)
{
richTextBox1.SaveFile(sdlgNotepad.FileName);
}
s = true;
richTextBox1.Text = "";
break;
case "No":
b = false;
richTextBox1.Text = "";
break;
}
}
}
odlgNotepad.RestoreDirectory = true;
if ((odlgNotepad.ShowDialog() == DialogResult.OK) && odlgNotepad.FileName != "")
{
//打开文件
richTextBox1.LoadFile(odlgNotepad.FileName);
b = true;
}
s = true;
}
catch(Exception ex)
{ } } //*************************************************************************
// 【另存为】菜单代码
//*************************************************************************
private void 另存为AToolStripMenuItem_Click(object sender, EventArgs e)
{
if(sdlgNotepad.ShowDialog() == DialogResult.OK)
{
richTextBox1.SaveFile(sdlgNotepad.FileName);
s = true;
}
} //*************************************************************************
// 【退出】菜单代码
//*************************************************************************
private void 退出XToolStripMenuItem_Click(object sender, EventArgs e)
{
//结束程序运行
Application.Exit();
} //*************************************************************************
// 【编辑】菜单各菜单项的单击代码
//*************************************************************************
// 【撤销】菜单代码
private void 撤消UToolStripMenuItem_Click(object sender, EventArgs e)
{
//撤销操作
richTextBox1.Undo();
} // 【复制】菜单代码
private void 复制CToolStripMenuItem_Click(object sender, EventArgs e)
{
//复制
richTextBox1.Copy();
} // 【剪切】菜单代码
private void 剪切TToolStripMenuItem_Click(object sender, EventArgs e)
{
//剪切
richTextBox1.Cut();
} // 【粘贴】菜单代码
private void 粘贴PToolStripMenuItem_Click(object sender, EventArgs e)
{
//粘贴
richTextBox1.Paste();
} // 【全选】菜单代码
private void 全选AToolStripMenuItem_Click(object sender, EventArgs e)
{
//全选
richTextBox1.SelectAll();
} //*************************************************************************
// 【格式】菜单代码
//*************************************************************************
private void 工具TToolStripMenuItem_Click(object sender, EventArgs e)
{ } // 【自动换行】菜单代码
private void 自定义CToolStripMenuItem_Click(object sender, EventArgs e)
{
if(自定义CToolStripMenuItem.Checked == false)
{
//选中自动换行
自定义CToolStripMenuItem.Checked = true;
//设置为自动换行
richTextBox1.WordWrap = true;
}
else
{
//未选中自动换行
自定义CToolStripMenuItem.Checked = false;
//设置为不自动换行
richTextBox1.WordWrap = false;
}
} // 【字体】菜单代码
private void 选项OToolStripMenuItem_Click(object sender, EventArgs e)
{
fdlgNotepad.ShowColor = true;
if(fdlgNotepad.ShowDialog() == DialogResult.OK)
{
richTextBox1.SelectionColor = fdlgNotepad.Color;
richTextBox1.SelectionFont = fdlgNotepad.Font;
}
} //*************************************************************************
// 【帮助】菜单代码
//*************************************************************************
// 【关于】菜单代码
private void 关于AToolStripMenuItem_Click(object sender, EventArgs e)
{
MessageBox.Show("wky 编写", "关于\"记事本\"", MessageBoxButtons.OK);
} //*************************************************************************
// 计时器控件的Tick事件代码
//*************************************************************************
private void tmrNotepad_Tick(object sender, EventArgs e)
{
//获取系统当前时间,并显示在状态栏中
tssLbl2.Text = System.DateTime.Now.ToString();
} private void 粘贴PToolStripButton_Click(object sender, EventArgs e)
{
richTextBox1.Paste();
} }
}
【转载】用C#编写一个简单的记事本的更多相关文章
- 用编写一个简单的记事本(C#实现)
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
- 编写一个简单的COM组件
参考网站:编写一个简单的COM组件_a ray of sunshine-CSDN博客 (1) 用MIDL编写.idl文件 //将以下代码保存成 IXIYIZ.idl 文件 //在命令行上进行编译,编译 ...
- C++-Qt【2】-实现一个简单的记事本
用Qt实现一个简单的记事本: #include "helloqt.h" #include <qfiledialog.h> #include <qfile.h> ...
- 编写一个简单的C++程序
编写一个简单的C++程序 每个C++程序都包含一个或多个函数(function),其中一个必须命名为main.操作系统通过调用main来运行C++程序.下面是一个非常简单的main函数,它什么也不干, ...
- 使用Java编写一个简单的Web的监控系统cpu利用率,cpu温度,总内存大小
原文:http://www.jb51.net/article/75002.htm 这篇文章主要介绍了使用Java编写一个简单的Web的监控系统的例子,并且将重要信息转为XML通过网页前端显示,非常之实 ...
- 编写一个简单的Web Server
编写一个简单的Web Server其实是轻而易举的.如果我们只是想托管一些HTML页面,我们可以这么实现: 在VS2013中创建一个C# 控制台程序 编写一个字符串扩展方法类,主要用于在URL中截取文 ...
- javascript编写一个简单的编译器(理解抽象语法树AST)
javascript编写一个简单的编译器(理解抽象语法树AST) 编译器 是一种接收一段代码,然后把它转成一些其他一种机制.我们现在来做一个在一张纸上画出一条线,那么我们画出一条线需要定义的条件如下: ...
- Java入门篇(一)——如何编写一个简单的Java程序
最近准备花费很长一段时间写一些关于Java的从入门到进阶再到项目开发的教程,希望对初学Java的朋友们有所帮助,更快的融入Java的学习之中. 主要内容包括JavaSE.JavaEE的基础知识以及如何 ...
- 用 Go 编写一个简单的 WebSocket 推送服务
用 Go 编写一个简单的 WebSocket 推送服务 本文中代码可以在 github.com/alfred-zhong/wserver 获取. 背景 最近拿到需求要在网页上展示报警信息.以往报警信息 ...
随机推荐
- 打开所有https网页都提示证书错误
最近安装了网上下载的ghost系统,可是不管是win7还是xp,打开所有的https网站都提示证书错误.想想现在打击盗版系统的力度不断增加,以前做的比较好的盗版系统网站都已经不再做系统了,现在下载的g ...
- 前端页面加载速度优化---Ngnix之GZIP压缩
gzip on; #开启Gzip gzip_static on;#是否开启gzip静态资源 #nginx对于静态文件的处理模块,该模块可以读取预先压缩的gz文件,这样可以减少每次请求进行gzip压缩的 ...
- Address already in use: JVM_Bind,tomcat启动异常
严重: StandardServer.await: create[8050]: java.net.BindException: Address already in use: JVM_Bind tom ...
- ov5640介绍
1 摄像头 在各类信息中,图像含有最丰富的信息,作为机器视觉领域的核心部件,摄像头被广泛地应用在安防.探险以及车牌检测等场合.摄像头按输出信号的类型来看可以分为数字摄像头和模拟摄像头,按照摄像头图像传 ...
- Servlet处理文件下载的编码问题,乱码。
Servlet处理文件下载的编码问题,乱码. //处理文件名乱码问题 // 获得请求头中的User-Agent String agent = request.getHeader("User- ...
- (译)学习如何构建自动化、跨浏览器的JavaScript单元测试
作者:Philip Walton 译者:Yeaseon 原文链接:点此查看 译文仅供个人学习,不用于任何形式商业目的,转载请注明原作者.文章来源.翻译作者及链接,版权归原文作者所有. ___ 我们都知 ...
- Python字符串操作大全(非常全!!!)
1. python编程里字符串的内置方法(非常全) capitalize() 把字符串的第一个字符改为大写 casefold() 把整个字符串的所有字符改为小写 center(width) 将字符串居 ...
- NGUI制作流光效果
效果展示: 技巧: 1.勾选UIPanel下的Normal启用UI的法线贴图,并建立带有法线贴图的UI对象(此处用NGUI自带的Reflector.Atlas中的图作为UI). 2.建立点光源并为其添 ...
- RNN概述-深度学习 -神经网络
一 RNN概述 前面我们叙述了BP算法, CNN算法, 那么为什么还会有RNN呢?? 什么是RNN, 它到底有什么不同之处? RNN的主要应用领域有哪些呢?这些都是要讨论的问题. 1) BP算法 ...
- cenos环境变量配置
Beego环境搭建和bee工具安装使用,以Windows环境为例. 首先,下载并安装好GO并配置好GOROOT和GOPATH环境变量(如果您是用msi包安装的go,那么这些环境变量已经设置好了).并在 ...