超详细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. 2.5亿个整数中找出不重复的整数
  2. i2c的时钟延展问题(转)
  3. Effective Objective-C 2.0 初读小结
  4. 博客杂志CMS模板,wpdx3.6破解版源码WordPress主题
  5. Python二叉树的三种深度优先遍历
  6. RabbitMq学习笔记005---登录rabbitmq报错User can only log in via localhost
  7. OSChina 周三乱弹 —— 程序员,老了会是怎么样?
  8. 幻想三国android官方版,幻想三国ol官方版下载
  9. 第二章--第二节:注释
  10. el-select 远程搜索时 没有箭头图标
  11. 捣乱姬使用说明 版本0.0.2
  12. 网页实现从数据库读取数据并简单分页
  13. 广电网络电视怎么服务器连接中断,怎么解决广电网络看电视卡
  14. 【开发工具】IDEA Lua 开发环境配置(完整无错)
  15. 【Linux-操作系统】
  16. 江苏移动CM101s-MV100-EMMC- M8233_强刷固件包
  17. Python+Appium+夜神模拟器 全流程从环境搭建到实现自动化(APP自动化)
  18. 一文带你了解什么是数学建模
  19. 多线程:模仿火车站售票
  20. 【离散数学】二元关系

热门文章

  1. opencv之VideoCapture与VideoWriter笔记
  2. 如何办理医疗器械经营许可证?
  3. VASP关于ALGO参数设置
  4. Android S静态广播注册流程(广播2)
  5. 创新型服务“智能推荐”——互联网平台建设 1
  6. Qt Mac下自定义Info.plist,并自动替换变量
  7. unity3d学校的课程内容有哪些?
  8. 每个飞机只有一个油箱,飞机之间可以相互加油(注意是相互,没有加油机)一箱油可供一架飞机绕地球飞半圈。 问题:为使至少一架飞机绕地球一圈回到起飞时的飞机场,至少需要出动几架飞机?(所有飞机从同一机场
  9. 纯手绘(留个纪念)-》每个飞机只有一个油箱, 飞机之间可以相互加油(注意是相互,没有加油机) 一箱油可供一架飞机绕地球飞半圈,问题:为使至少一架飞机绕地球一圈回到起飞时的飞机
  10. linux切换桌面环境bug,LinuxMint 17.1 Cinnamon桌面窗口焦点bug