用C#代码实现记事本
用C#代码实现记事本
一、功能说明
实现记事本功能:程序具有文件的新建、打开、保存功能;文字的复制、粘贴、删除功能;字体类型、格式的设置功能;查看日期时间等功能,并且用户可以根据需要显示或者隐藏工具栏和状态栏。
预期效果图:
二、主要属性效果
窗体属性:
Name:frmNotepad
Text:记事本
StartPosition:CenterScreen
Size:600, 450
菜单属性:
三、主要代码
(1)代码通用段
声明以下两个公共变量,他们都是布尔型的,“b”用于判断文件是新建的还是从磁盘打开的,“s”用于判断文件是否被保存。
(2) 多格式文本框代码
当多格式文本框中的文本发生改变后,应当设置布尔变量“s”的值为false,表示文件未保存。
(3)菜单代码
文件:
新建:
private void 新建NToolStripMenuItem_Click(object sender, EventArgs e){// 【新建】菜单代码// 判断当前文件是否从磁盘打开,或者新建时文档不为空,并且文件未被保存if (b == true || rtxtNotepad.Text.Trim() != ""){// 若文件未保存if (s == false){string result;result = MessageBox.Show("文件尚未保存,是否保存?","保存文件", MessageBoxButtons.YesNoCancel).ToString();switch (result){case "Yes":// 若文件是从磁盘打开的if (b == true){// 按文件打开的路径保存文件rtxtNotepad.SaveFile(odlgNotepad.FileName);}// 若文件不是从磁盘打开的else if (sdlgNotepad.ShowDialog() == DialogResult.OK){rtxtNotepad.SaveFile(sdlgNotepad.FileName);}s = true;rtxtNotepad.Text = "";break;case "No":b = false;rtxtNotepad.Text = "";break;}}}}
打开:
private void tsmiOpen_Click(object sender, EventArgs e){// 【打开】菜单代码//*************************************************************************if (b == true || rtxtNotepad.Text.Trim() != ""){if (s == false){string result;result = MessageBox.Show("文件尚未保存,是否保存?","保存文件", MessageBoxButtons.YesNoCancel).ToString();switch (result){case "Yes":if (b == true){rtxtNotepad.SaveFile(odlgNotepad.FileName);}else if (sdlgNotepad.ShowDialog() == DialogResult.OK){rtxtNotepad.SaveFile(sdlgNotepad.FileName);}s = true;break;case "No":b = false;rtxtNotepad.Text = "";break;}}}odlgNotepad.RestoreDirectory = true;if ((odlgNotepad.ShowDialog() == DialogResult.OK) && odlgNotepad.FileName != ""){rtxtNotepad.LoadFile(odlgNotepad.FileName);//打开代码语句b = true;}s = true;}
保存:
private void tsmiSave_Click(object sender, EventArgs e){// 【保存】菜单代码//*************************************************************************//由于这个没有改Name属性,所以和图片不太一样,对照就行// 若文件从磁盘打开并且修改了其内容if (b == true && rtxtNotepad.Modified == true){rtxtNotepad.SaveFile(odlgNotepad.FileName);s = true;}else if (b == false && rtxtNotepad.Text.Trim() != "" &&sdlgNotepad.ShowDialog() == DialogResult.OK){rtxtNotepad.SaveFile(sdlgNotepad.FileName);//保存语句s = true;b = true;odlgNotepad.FileName = sdlgNotepad.FileName;}}
另存为:
private void tsmiSaveAs_Click(object sender, EventArgs e){// 【另存为】菜单代码//*************************************************************************if (sdlgNotepad.ShowDialog() == DialogResult.OK){rtxtNotepad.SaveFile(sdlgNotepad.FileName);s = true;}}
退出:
private void tsmiClose_Click(object sender, EventArgs e){// 【退出】菜单代码//*************************************************************************Application.Exit();//程序结束}
编辑:
撤销:
private void tsmiUndo_Click(object sender, EventArgs e){// 【撤销】菜单代码rtxtNotepad.Undo();//撤销}
复制:
private void 复制CCtrlCToolStripMenuItem_Click(object sender, EventArgs e){// 【复制】菜单代码rtxtNotepad.Copy();//复制}
剪切:
private void tsmiCut_Click(object sender, EventArgs e){// 【剪切】菜单代码rtxtNotepad.Cut();//剪切}
粘贴:
private void tsmiPaste_Click(object sender, EventArgs e){// 【粘贴】菜单代码rtxtNotepad.Paste();//粘贴}
全选:
private void tsmiSelectAll_Click(object sender, EventArgs e){// 【全选】菜单代码rtxtNotepad.SelectAll();//全选}
日期:
private void tsmiDate_Click(object sender, EventArgs e){// 【日期】菜单代码rtxtNotepad.AppendText(System.DateTime.Now.ToString());//显示当前日期}
格式:
自动换行:
private void tsmiAuto_Click(object sender, EventArgs e){// 【自动换行】菜单代码//*************************************************************************if (tsmiAuto.Checked == false){tsmiAuto.Checked = true; // 选中该菜单项rtxtNotepad.WordWrap = true; // 设置为自动换行}else{tsmiAuto.Checked = false;rtxtNotepad.WordWrap = false;}}
字体:
private void tsmiFont_Click(object sender, EventArgs e){// 【字体】菜单代码//*************************************************************************fdlgNotepad.ShowColor = true;if (fdlgNotepad.ShowDialog() == DialogResult.OK){rtxtNotepad.SelectionColor = fdlgNotepad.Color;rtxtNotepad.SelectionFont = fdlgNotepad.Font;}}
查看:
工具栏:
private void tsmiToolStrip_Click(object sender, EventArgs e){// 【工具栏】菜单代码//*************************************************************************Point point;if (tsmiToolStrip.Checked == true){// 隐藏工具栏时,把坐标设为(0,24),因为菜单的高度为24point = new Point(0, 24);tsmiToolStrip.Checked = false;tlsNotepad.Visible = false;// 设置多格式文本框左上角位置rtxtNotepad.Location = point;// 隐藏工具栏后,增加文本框高度rtxtNotepad.Height += tlsNotepad.Height;}else{/* 显示工具栏时,多格式文本框左上角位置的位置为(0,49),因为工具栏的高度为25,加上菜单的高度24后为49 */point = new Point(0, 49);tsmiToolStrip.Checked = true;tlsNotepad.Visible = true;rtxtNotepad.Location = point;rtxtNotepad.Height -= tlsNotepad.Height;}}// 工具栏的ItemClicked事件代码//*************************************************************************private void tlsNotepad_ItemClicked(object sender, ToolStripItemClickedEventArgs e){int n;// 变量n用来接收按下按钮的索引号从0开始n = tlsNotepad.Items.IndexOf(e.ClickedItem);switch (n){case 0:新建NToolStripMenuItem_Click(sender, e);break;case 1:tsmiOpen_Click(sender, e);break;case 2:tsmiSave_Click(sender, e);break;/*case 3:tsmiCopy_Click(sender, e);break;*/ // 我们不用case3case 4:tsmiCut_Click(sender, e);break;case 5:tsmiPaste_Click(sender, e);break;/*case 6:tsmiPaste_Click(sender, e);break; */ // 我们不用case6case 7:tsmiAbout_Click(sender, e);break;}}// 工具栏的ItemClicked事件代码
状态栏:
private void tsmiStatusStrip_Click(object sender, EventArgs e){// 【状态栏】菜单代码//*************************************************************************if (tsmiStatusStrip.Checked == true){tsmiStatusStrip.Checked = false;stsNotepad.Visible = false;rtxtNotepad.Height += stsNotepad.Height;}else{tsmiStatusStrip.Checked = true;stsNotepad.Visible = true;rtxtNotepad.Height -= stsNotepad.Height;}}
帮助:
关于记事本:
private void tsmiAbout_Click(object sender, EventArgs e){// 【关于记事本】菜单代码//*************************************************************************frmAbout ob_FrmAbout = new frmAbout();ob_FrmAbout.Show();}
计时器代码:
// 计时器控件的Tick事件代码//*************************************************************************private void tmrNotepad_Tick(object sender, EventArgs e){tssLbl2.Text = System.DateTime.Now.ToString();}
四、结果展示
用户界面:
输入界面:
用C#代码实现记事本相关推荐
- b站黑马的Vue快速入门案例代码——小黑记事本
目录 目标效果: 重点原理: (1)push()方法--向数组末尾,添加新元素,并返回新长度 (2)v-on可以传递自定义参数,v-on:click="..."的简写是@click ...
- 易语言复制代码到记事本时出现乱码
参考:http://blog.sina.com.cn/s/blog_63fcd99c0102v2ga.html 我把易语言IDE里面的代码复制到计算本时,出现了乱码: Á¬½Ó¾ä±ú £½ Ä£¿é ...
- java记事本写玫瑰花代码_Java记事本源代码(完整)
<Java记事本源代码(完整)>由会员分享,可在线阅读,更多相关<Java记事本源代码(完整)(13页珍藏版)>请在人人文库网上搜索. 1.* 作品:记事本* 作者:* 功能: ...
- bat最简单的装逼代码(记事本)
1,右击桌面,点新建,文本文档 2,打开后输入tree d:即可或者是tree c: 3,文件后缀名修改为bat 4,双击打开 感兴趣的小伙伴们赶紧尝试一下吧!
- HTML+css+js相关代码(记事本)
注释: css /**/ html <!--> ctrl+f :查找 html meta: 空标签,表示网页的关键词,跳转网页 style:添加自定义风格,css样式表 link : ...
- java 无开发环境时在记事本中编写的方法与命令行运行java代码
第一步:记事本编写java代码 用记事本编写的是java的源代码文件,里面的代码就是我们平时学习的java代码,生成的文 件后缀是.txt,更改文本文档的后缀名为 .java.java文件是不能直接执 ...
- 三行代码让你的博客访问量上百万
复制下面代码到记事本里,将地址替换为要刷访问量的博客地址,然后将文件后缀名改为.html,使用浏览器打开即可 1 <!-- 用iframe主要是为了避免使用window.open()方法,一直弹 ...
- 找不到显示桌面的快捷方式怎么办|显示桌面的快捷方式找不到解决方法|显示桌面代码|...
找不到显示桌面的快捷方式怎么办|显示桌面的快捷方式找不到解决方法|显示桌面代码| 新建记事本把一下代码拷进去,保存成scf格式,然后拖到状态栏图标就可以了 [Shell] Command=2 Icon ...
- ie运行不了java脚本界面_IE浏览器不能运行js JS代码失效不能运行了如何解决
IE浏览器不能运行js JS代码失效不能运行了如何解决 发布时间:2012-02-20 16:39:23 作者:佚名 我要评论 IE不能运行js,在IE浏览器js代码失效,js不能运行了怎么办 ...
最新文章
- 面试题:请用代码实现ip地址与int之间互换?
- 使用repeater,遍历数据,不规则排序,不同的样式之间切换
- 7.6~7.20集训总结(一)
- python下的scripts有什么用_python安装后无scripts内文件,无法使用pip
- 栈和递归的关系 144:Binary Tree Preorder Traversal
- Java字节流的使用
- 在Linux中快速找到文件的几种方法
- 参数等效模型可以用于_扬声器单元的等效电路分析与应用(1)
- google手机连接wifi后提示“无法连接互联网“的原因和解决方法
- Spring是如何解决循坏依赖的?
- 裸金属服务器(Bare Metal Server,BMS)
- LintCode 488.快乐数
- java面试题(记录与分享)二
- [VulnHub靶机]Lampiao_脏牛提权
- 五分频器(Verilog)
- ios 热更新 无需上传AppStore 可以直接新加功能
- 数字孪生城市可视化大屏设计,智慧楼宇开源项目
- 虚拟机可以识别U盘,但是连接不上U盘的问题
- win10如何使用miphone刷机工具
- Android刷windows 10系统,安卓手机刷win10电脑版