超详细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、打印,预览,页面设置

步骤如下:

  1. 添加控件:添加一个printdialog组件printdialog1(默认的),一个printdocument组件printdocument1,一个pagesetupdialog组件pagesetupdialog1,一个printpreviewdialog组件printpreviewdialog1。
  2. 添加控制事件:为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, "打印出错");}}
  1. 3.设置上述代码完成后即可运行(Ctrl+F5)测试功能。

7、Form窗口背景图片设置

【form】—【属性】—【backgroundimage】可以自定义导入图片

三、心得

  1. 敲代码的时候可以仔细一点,我在敲打印这个功能的时候,fontDialog.Front的时候一直报错,最后发现是输入法的错,于是,写代码也是很需要耐心的
  2. 安利一个很好用的网站,有海量的图片,支持多种格式(包括icon,)是一个国外的网站,界面很简洁,免费的。https://www.easyicon.net/
  3. 最后给大家留下这张照片吧(我觉得还是很有feel的照片),感谢阅读,

c#窗体入门实战程序——绿色草稿纸,一键解锁打开,保存,复制,粘贴,剪切,打印,删除,全选,字体,颜色等相关推荐

  1. [TensorFlow深度学习入门]实战七·简便方法实现TensorFlow模型参数保存与加载(ckpt方式)

    [TensorFlow深度学习入门]实战七·简便方法实现TensorFlow模型参数保存与加载(ckpt方式) 个人网站–> http://www.yansongsong.cn TensorFl ...

  2. 微信小程序 - 手持弹幕 | 全屏炫酷滚屏神器源代码模板,超详细代码和注释复制粘贴即可使用(全屏文字滚动,支持调节滚动速度、字体大小、字体颜色)文字内容横屏滚动,手机变身 LED 屏

    前言 网上大部分代码都很乱,而且都有 BUG,本文提供注释详细且干净整洁的源代码. 您可以直接复制源代码,几分钟轻松移植到您的项目中, 您可以 根据自己的需求进行样式.逻辑的变更,代码注释非常详细, ...

  3. 【uni-app微信小程序】搜索页面开发,可以保存用户搜索历史,删除历史(简单解释)

    目录 前言 效果展示 主体内容 前言 此篇文章纯代码较多,细节解释,今后会出更加详细的解释 效果展示 保存的内容,可以长按删除,视频时长原因就不一一展示,具体效果如下视频 主体内容 这里one-adv ...

  4. android php实战,android编程开发入门实战例子–hello word

    android开发入门实战编程例子–hello word 1.打开Eclipse,选择菜单File->New->Other,打开新建对话框.选择Android Project后,点击Nex ...

  5. 考研数学三考摆线吗_考研数学草稿纸发几张?可以多打几张准考证当草稿纸用吗?...

    考研数学是考研中的重中之重,满分150分的分数在整个考研分数中占有相当大的比重,数学分数不仅关乎着考研成绩的高低,也关乎着考研成败的关键.而考研数学一个明显的特点就是计算量大,在考场上有相当大比例的同 ...

  6. (下)开发一款微信小程序的个性简历,能打开大厂之门并获得门票?(附源码)

    回顾 阅读本文之前,可以先看看上一篇分享的内容,主要讲微信小程序的由来,它的特点及产品优势,行业应用,开发语言,运行环境,开发前的准备工作等等. 本项目是基于微信小程序原生框架,常用原生组件及官方AP ...

  7. 程序员是复制粘贴的工具人?还是掌握“谜底”的魔术师?

    作者 | David Heinemeier Hansson 译者 | 弯月 出品 | CSDN(ID:CSDNnews) 编程世界在经历了"Imposter Syndrome(冒充者症候群/ ...

  8. 微信小程序实现添加购物车,及购物车商品的增删,全选等

    一.首先定义一个点击事件 const app = getApp() 引入全局app.js <button bindtap="addCart">添加</button ...

  9. 用python实现win10画图程序画选择框、复制、剪切、粘贴及拖动选择框内图形或粘贴后图形到指定位置

    本文介绍用python实现win10画图程序剪贴功能的方法.win10画图程序本质上是一个位图处理程序.其最主要的功能是画各种图形,包括线.矩形.椭圆(圆)和各种多边形等,并将各种图形保存到位图中.该 ...

最新文章

  1. python自动化办公培训排名-盘点使用Python进行自动化办公所需要的知识点
  2. Orange‘s 一个操作系统的实现--Bochs遇到的问题
  3. leetcode 907. Sum of Subarray Minimums | 907. 子数组的最小值之和(单调栈)
  4. SAP Fiori Lead应用中Accept按钮显示隐藏的逻辑
  5. 小波变换原理_小波变换的知识,转载的
  6. ds1302典型应用原理图_不同类型的光纤激光器,在工业中有哪些典型应用
  7. 通俗编程——白话NIO之Buffer
  8. python必背代码-Python小白必备的8个最常用的内置函数(推荐)
  9. MATLAB 图像处理基础(1)
  10. 微软补丁地址以及查找方式
  11. Turbo码 - 接近完美的编码
  12. 3D相机技术 | 立体视觉传感器+TOF相机
  13. 2018秋招暨年度总结
  14. Windows 10 自带输入法微软拼音「简体」「繁体」切换快捷键
  15. bzoj 2298 problem a
  16. 转 -- windows7 C盘空间越来越少?完美解决方案
  17. 马自达推出首个混合动力车型
  18. 【农业科研进展】小麦白粉病与植物叶部病害监测识别
  19. 微信无法打开网页下载链接的解决方案,微信跳转外部浏览器
  20. JavaWeb学习记录 JspSmartUpload应用

热门文章

  1. 5-微信小程序工具使用
  2. 一木.溪桥学爬虫-03:请求模块urllib、 urllib.request、urllib.parse.urlencode、urllib.parse.quote(str)、.unquote()
  3. Deepin - 安装zsh及oh-my-zsh的踩坑记录
  4. 用计算机上的什么解压文件格式,压缩文件格式rar和zip有什么区别(图文)
  5. UI设计师养成记-陈松鑫-专题视频课程
  6. html5语音即时聊天|仿微信语音效果|表情|定位
  7. android 数据埋点封装,Android 数据埋点的重新思考
  8. 优质的海外媒体发布平台除了美联社-彭博社发稿,还有哪些?
  9. 基于Beacon技术的智慧工厂解决方案
  10. C# 如何添加水印到PPT