c#窗体入门实战程序——绿色草稿纸,一键解锁打开,保存,复制,粘贴,剪切,打印,删除,全选,字体,颜色等
超详细c#窗体入门实战程序——绿色草稿纸
带你一键解锁打开,保存,复制,粘贴,剪切,打印,删除,全选,字体,颜色等
目录
超详细c#窗体入门实战程序——绿色草稿纸
带你一键解锁打开,保存,复制,粘贴,剪切,打印,删除,全选,字体,颜色等
一、程序介绍
二、几个板块的实现解释
1、新建基本菜单栏以及文本框
2.打开——从电脑上传文件,使文件内容显示在文本框上面
3、保存——保存文件为指定的格式
4、复制,剪切,全选,清空
5、粘贴与撤回
6、颜色与字体
7、打印,预览,页面设置
7、Form窗口背景图片设置
三、心得
一、程序介绍
首先映入眼帘的是一个春意盎然的一个编辑界面,阳光和绿叶是最搭的啊!
菜单内容
二、几个板块的详细解释(附关键功能的代码)
1、新建基本菜单栏以及文本框
(1)新建c#窗体应用程序,找到新建的form1(一个原始简单的窗口,name默认是form1),可以打开【视图】—>【工具箱】,在公共空间中找到RichTextBox空间,拖到form1窗口中,这时新建的窗口支持多行文本输入等功能。
(2)同理,在工具栏找到【菜单和工具栏】,这个类型有,指针,contextmenustrip,menustrip,statusstrip,toolstrip以及toolstripcontainer几个空进啊可以选择,在这里我们选择menustrip这个空间生成一个菜单栏(显示文件,编辑,格式,帮助),自定义二级菜单,每一个菜单选项都可以右键设置分隔线(【右键】-【插入】-【separator】)和图标(【右键】-【设置图像】)。接下来,我们选择一个toolstrip控件拖到刚刚新建的menustrip下面,制作图片快捷菜单,相关设置和menustrip菜单相同,打开【视图】-【属性设置】,点击toolstrip菜单中的每一个子菜单,设置它的text属性为它所承载的功能,
(3)新建右键菜单,即在richtextbox中编辑文字时右键显示出来的菜单:在控件中拖一个contextmenustrip到richtextbox中,类似的方法设置一级,二级菜单一级图标。
设置完上述三步之后就可以得到我们文章开篇那个“绿色编辑器的主界面”了。作者的程序相关子菜单设置如下:
2.打开——从电脑上传文件,使文件内容显示在文本框上面
代码展示,在双击保存的图标或文字时会自动调转到该板块代码的编辑位置(form.cs文件)
private void toolStripButton2_Click(object sender, EventArgs e){OpenFileDialog open = new OpenFileDialog();open.Filter = "*.rtf|Paint text files (*.txt)|*.txt|Rich text files(*.rtf)|All files|*.*"; //设置可以支持打开的文件类型open.Title = "打开";if (open.ShowDialog() == DialogResult.OK){string filePath = open.FileName;System.IO.StreamReader sReader = new System.IO.StreamReader(filePath, Encoding.Default);this.richTextBox1.Text = sReader.ReadToEnd();sReader.Dispose();}open.Dispose();}
3、保存——保存文件为指定的格式
"Rich text files(*.rtf)|*.rtf|Paint text files (*.txt)|*.txt|All files|*.*"这个语句就是设置的支持的文件格式,和打开文件支持的格式相同。这里我多设置了一个提示窗口,提醒用户是否保存文档,其实如果else{}里面的代码就可以实现这个功能了,但是作者还抱着到处点一点玩一玩的心态多做了一点东西,多多益善嘛。
private void toolStripButton4_Click(object sender, EventArgs e){if (MessageBox.Show("是否保存?", "温馨提示", MessageBoxButtons.YesNoCancel,MessageBoxIcon.Information, MessageBoxDefaultButton.Button1) == DialogResult.Yes){SaveFileDialog save = new SaveFileDialog();save.Title = "保存文件";save.Filter = "Rich text files(*.rtf)|*.rtf|Paint text files (*.txt)|*.txt|All files|*.*";if (save.ShowDialog() == DialogResult.OK){string filePath = save.FileName;richTextBox1.SaveFile(filePath, RichTextBoxStreamType.PlainText);}}else{Close();}}
效果图如下,点击是之后可以选择路径保存文件。
4、复制,剪切,全选,清空
开始做的时候再网上找到过一些例子,但是代码都是5,6行往上,后来发现可以直接,调用,所以这四个功能都只需一条代码
private void toolStripButton7_Click(object sender, EventArgs e){richTextBox1.Copy();//复制}private void toolStripButton10_Click(object sender, EventArgs e){richTextBox1.Cut();//剪切}private void toolStripButton11_Click(object sender, EventArgs e){richTextBox1.SelectAll();//全选}private void toolStripButton8_Click(object sender, EventArgs e){richTextBox1.Clear();//清空}}
5、粘贴与撤回
private void toolStripButton9_Click(object sender, EventArgs e)//粘贴{this.Cursor = Cursors.WaitCursor;this.richTextBox1.Paste();this.Cursor = Cursors.Default;}private void toolStripButton3_Click(object sender, EventArgs e){if (richTextBox1.CanUndo){richTextBox1.Undo();//撤回}}
6、颜色与字体
private void 字体ToolStripMenuItem_Click(object sender, EventArgs e){if (fontDialog1.ShowDialog() == DialogResult.OK)richTextBox1.SelectionFont = fontDialog1.Font;}private void 颜色ToolStripMenuItem_Click(object sender, EventArgs e){if (colorDialog1.ShowDialog() == DialogResult.OK)richTextBox1.BackColor = colorDialog1.Color;}
7、打印,预览,页面设置
步骤如下:
- 添加控件:添加一个printdialog组件printdialog1(默认的),一个printdocument组件printdocument1,一个pagesetupdialog组件pagesetupdialog1,一个printpreviewdialog组件printpreviewdialog1。
- 添加控制事件:为printdocument组件添加printpage时间,用来打印richtextbox1控件内容,代码如下:
private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e){Graphics g = e.Graphics;string[] str = richTextBox1.Text.Split('\n');int i = 0;foreach (string s in str){g.DrawString(str[i], fontDialog1.Font, new SolidBrush(richTextBox1.ForeColor),new PointF(100, 80 + richTextBox1.Font.Height * i));i++;}}
双击设置“打印”功能的图标或者文字,输入代码如下:
private void toolStripButton5_Click(object sender, EventArgs e){printDialog1.Document = printDocument1;if (printDialog1.ShowDialog() == DialogResult.OK){try{printDocument1.Print();}catch (Exception ex){MessageBox.Show(ex.Message, "打印出错");}}}
双击设置“页面设置”功能的位置,在其中设置代码为:
private void toolStripButton1_Click_2(object sender, EventArgs e){pageSetupDialog1.Document = printDocument1;try{pageSetupDialog1.ShowDialog();}catch (Exception ex){MessageBox.Show(ex.Message, "打印出错");}}
双击“预览”功能的位置,在其中设置代码为:
private void toolStripButton12_Click(object sender, EventArgs e){printPreviewDialog1.Document = printDocument1;try{printPreviewDialog1.ShowDialog();}catch (Exception ex){MessageBox.Show(ex.Message, "打印出错");}}
- 3.设置上述代码完成后即可运行(Ctrl+F5)测试功能。
7、Form窗口背景图片设置
【form】—【属性】—【backgroundimage】可以自定义导入图片
三、心得
- 敲代码的时候可以仔细一点,我在敲打印这个功能的时候,fontDialog.Front的时候一直报错,最后发现是输入法的错,于是,写代码也是很需要耐心的
- 安利一个很好用的网站,有海量的图片,支持多种格式(包括icon,)是一个国外的网站,界面很简洁,免费的。https://www.easyicon.net/
- 最后给大家留下这张照片吧(我觉得还是很有feel的照片),感谢阅读,
c#窗体入门实战程序——绿色草稿纸,一键解锁打开,保存,复制,粘贴,剪切,打印,删除,全选,字体,颜色等相关推荐
- [TensorFlow深度学习入门]实战七·简便方法实现TensorFlow模型参数保存与加载(ckpt方式)
[TensorFlow深度学习入门]实战七·简便方法实现TensorFlow模型参数保存与加载(ckpt方式) 个人网站–> http://www.yansongsong.cn TensorFl ...
- 微信小程序 - 手持弹幕 | 全屏炫酷滚屏神器源代码模板,超详细代码和注释复制粘贴即可使用(全屏文字滚动,支持调节滚动速度、字体大小、字体颜色)文字内容横屏滚动,手机变身 LED 屏
前言 网上大部分代码都很乱,而且都有 BUG,本文提供注释详细且干净整洁的源代码. 您可以直接复制源代码,几分钟轻松移植到您的项目中, 您可以 根据自己的需求进行样式.逻辑的变更,代码注释非常详细, ...
- 【uni-app微信小程序】搜索页面开发,可以保存用户搜索历史,删除历史(简单解释)
目录 前言 效果展示 主体内容 前言 此篇文章纯代码较多,细节解释,今后会出更加详细的解释 效果展示 保存的内容,可以长按删除,视频时长原因就不一一展示,具体效果如下视频 主体内容 这里one-adv ...
- android php实战,android编程开发入门实战例子–hello word
android开发入门实战编程例子–hello word 1.打开Eclipse,选择菜单File->New->Other,打开新建对话框.选择Android Project后,点击Nex ...
- 考研数学三考摆线吗_考研数学草稿纸发几张?可以多打几张准考证当草稿纸用吗?...
考研数学是考研中的重中之重,满分150分的分数在整个考研分数中占有相当大的比重,数学分数不仅关乎着考研成绩的高低,也关乎着考研成败的关键.而考研数学一个明显的特点就是计算量大,在考场上有相当大比例的同 ...
- (下)开发一款微信小程序的个性简历,能打开大厂之门并获得门票?(附源码)
回顾 阅读本文之前,可以先看看上一篇分享的内容,主要讲微信小程序的由来,它的特点及产品优势,行业应用,开发语言,运行环境,开发前的准备工作等等. 本项目是基于微信小程序原生框架,常用原生组件及官方AP ...
- 程序员是复制粘贴的工具人?还是掌握“谜底”的魔术师?
作者 | David Heinemeier Hansson 译者 | 弯月 出品 | CSDN(ID:CSDNnews) 编程世界在经历了"Imposter Syndrome(冒充者症候群/ ...
- 微信小程序实现添加购物车,及购物车商品的增删,全选等
一.首先定义一个点击事件 const app = getApp() 引入全局app.js <button bindtap="addCart">添加</button ...
- 用python实现win10画图程序画选择框、复制、剪切、粘贴及拖动选择框内图形或粘贴后图形到指定位置
本文介绍用python实现win10画图程序剪贴功能的方法.win10画图程序本质上是一个位图处理程序.其最主要的功能是画各种图形,包括线.矩形.椭圆(圆)和各种多边形等,并将各种图形保存到位图中.该 ...
最新文章
- 2.5亿个整数中找出不重复的整数
- i2c的时钟延展问题(转)
- Effective Objective-C 2.0 初读小结
- 博客杂志CMS模板,wpdx3.6破解版源码WordPress主题
- Python二叉树的三种深度优先遍历
- RabbitMq学习笔记005---登录rabbitmq报错User can only log in via localhost
- OSChina 周三乱弹 —— 程序员,老了会是怎么样?
- 幻想三国android官方版,幻想三国ol官方版下载
- 第二章--第二节:注释
- el-select 远程搜索时 没有箭头图标
- 捣乱姬使用说明 版本0.0.2
- 网页实现从数据库读取数据并简单分页
- 广电网络电视怎么服务器连接中断,怎么解决广电网络看电视卡
- 【开发工具】IDEA Lua 开发环境配置(完整无错)
- 【Linux-操作系统】
- 江苏移动CM101s-MV100-EMMC- M8233_强刷固件包
- Python+Appium+夜神模拟器 全流程从环境搭建到实现自动化(APP自动化)
- 一文带你了解什么是数学建模
- 多线程:模仿火车站售票
- 【离散数学】二元关系
热门文章
- opencv之VideoCapture与VideoWriter笔记
- 如何办理医疗器械经营许可证?
- VASP关于ALGO参数设置
- Android S静态广播注册流程(广播2)
- 创新型服务“智能推荐”——互联网平台建设 1
- Qt Mac下自定义Info.plist,并自动替换变量
- unity3d学校的课程内容有哪些?
- 每个飞机只有一个油箱,飞机之间可以相互加油(注意是相互,没有加油机)一箱油可供一架飞机绕地球飞半圈。 问题:为使至少一架飞机绕地球一圈回到起飞时的飞机场,至少需要出动几架飞机?(所有飞机从同一机场
- 纯手绘(留个纪念)-》每个飞机只有一个油箱, 飞机之间可以相互加油(注意是相互,没有加油机) 一箱油可供一架飞机绕地球飞半圈,问题:为使至少一架飞机绕地球一圈回到起飞时的飞机
- linux切换桌面环境bug,LinuxMint 17.1 Cinnamon桌面窗口焦点bug