首先先给大家发表几张图片,描述一下记事本程序要实现的功能以及界面设计。

以上这些就是简易记事本的的主界面设计。

下面我们来做一些简单的讲解;

1.使用MenuStrip控件来实现菜单栏的基本设计。

在VS2013的侧面工具栏里面拖拽一个menustriP控件,在控件里面做菜单栏的设计。这时候应该注意我们应该在下侧的MenuStrip里面进行设计。

选择编辑项在里面进行设计,在设计完成菜单栏的大体框架之后,我们就要完成菜单栏的具体功能的实现。

具体的程序设计代码需要在每一个按钮的click事件里面完成,代码如下:

打开操作:

private void toolStripMenuItem5_Click(object sender, EventArgs e)
{
OpenFileDialog on = new OpenFileDialog();
on.Filter = "文本文件(.txt)|*.txt|Word文档(.doc)|*.doc|媒体文件(.avi)|*.avi";
if(on.ShowDialog() == DialogResult.OK)
Process.Start(on.FileName);
}

保存操作:

private void toolStripMenuItem6_Click(object sender, EventArgs e)
{
saveFile();
}
private void saveFile()
{
FrmNote Labname = new FrmNote();
string Myfilename = Labname.Text;
Myfilename = Labname.Text.ToUpper();
richTextBox1.SaveFile(Myfilename, RichTextBoxStreamType.PlainText);

}

关闭操作:

private void toolStripMenuItem8_Click(object sender, EventArgs e)
{
Application.Exit();
}

剪切:

private void toolStripMenuItem11_Click(object sender, EventArgs e)
{
if (richTextBox1.CanSelect)
richTextBox1.Cut();
}

复制:

private void toolStripMenuItem12_Click(object sender, EventArgs e)
{
if (richTextBox1.CanSelect)
richTextBox1.Copy();
}

粘贴:

private void toolStripMenuItem13_Click(object sender, EventArgs e)
{
IDataObject iData = Clipboard.GetDataObject();
if (iData.GetDataPresent(DataFormats.Text))
this.richTextBox1.SelectedText = (String)iData.GetData(DataFormats.Text);

}

删除:

private void toolStripMenuItem14_Click(object sender, EventArgs e)
{
if (richTextBox1.CanSelect)
richTextBox1.Undo();
}

字体设计:

private void toolStripMenuItem18_Click(object sender, EventArgs e)
{
richTextBox1.Font = new Font("黑体", 15);
}

自选字体项:

private void 其他ToolStripMenuItem_Click(object sender, EventArgs e)
{
FontDialog on = new FontDialog();
on.Font = richTextBox1.SelectionFont;
if (on.ShowDialog() == DialogResult.OK)
richTextBox1.SelectionFont = on.Font;
}

颜色设置:

private void toolStripMenuItem21_Click(object sender, EventArgs e)
{
richTextBox1.ForeColor = Color.Red;
}

自选颜色设置:

private void 其他ToolStripMenuItem1_Click(object sender, EventArgs e)
{
ColorDialog on = new ColorDialog();
if (on.ShowDialog() == DialogResult.OK)
richTextBox1.SelectionColor = on.Color;
}

背景颜色:

private void 背景颜色ToolStripMenuItem_Click(object sender, EventArgs e)
{
ColorDialog on = new ColorDialog();
if (on.ShowDialog() == DialogResult.OK)
richTextBox1.BackColor = on.Color;
}

工具栏菜单——ToolStrip

  1. 功能要求:实现工具栏的基本设计。
  2. 控件组成以及属性设置:

l 在创建ToolStrip控件之前,可以先创建一个ToolStripContainer控件,用于摆放工具栏,文本框和状态栏的位置。其中单击小箭头,选择在窗体中停靠填充,并且面版可见性中,不选择左右(如图5所示)。

注:也可以不做,直接做下一步,新建工具栏也可以。

单击toolStripContainer上面的按钮,创建ToolStrip控件

打开,保存,查找,剪切,复制,粘贴

  1. 属性:提示信息由每个菜单项的ToolTipText设置。
  2. 功能实现:剪切,复制,粘贴按钮功能和“编辑菜单”中的相应功能相同

高级文本框控件——RichTextBox

  1. 功能要求:用于输入文字信息,并且可以利用右键设置文字的字体和颜色。
  2. 控件及属性设置——RichTextBox

创建RichTextBox时,单击上方小箭头,选择在父容器中停靠

《winform窗体应用程序》----------简易记事本的更多相关文章

  1. C# winform 窗体应用程序之图片上传Oracle数据库保存字段BLOB

    C# winform 窗体应用程序之图片上传Oracle数据库保存字段BLOB 我用的数据库是Oracle,就目前来看,许多数据库现在都倾向于Oracle数据库,对ORACLE数据库基本的操作也是必须 ...

  2. winform窗体 小程序【线程】

    线程是进程中执行运算的最小单位,也是执行处理机调度的基本单位.实际上线程是轻量级的进程.那么为什么要使用线程呢? (1)易于调度. (2)提高并发性.通过线程可方便有效地实现并发性.进程可创建多个线程 ...

  3. WinForm 窗体应用程序(初步)之一

    学习制作一个WinForm程序,有两样东西是需要首先掌握的.第一部分,我们称之为属性面板.无论是窗体还是控件,都有着自己的属性面板.第二部分,则是我们称之为控件的东西. 我们先来讨论一下属性面板.新建 ...

  4. WinForm窗体更新程序

    流程介绍: 打包参阅:WinForm程序打包说明    图一    图二    图三   实现步骤: 主程序 1.检测是否连上ftp服务器 1.1 连接不上,不检测. 1.2 连接上,如果有更新进程, ...

  5. 设置WinForm窗体及程序图标

    自己留着看,总是用的时候给忘记了,百度来百度去的麻烦. 设置 Ico 图标为 [资源文件] 项目名à右键à属性,在选项卡中选择"资源"   选择 "添加资源"à ...

  6. winform窗体 小程序【进程】

    进程 一个应用程序就是一个进程,我的理解是,只要是打开应用程序,就会创建进程. 在.NET框架在using.System.Diagnostics名称空间中,有一个类Process,用来创建一个新的进程 ...

  7. winform窗体 小程序【登录窗体】【恶搞程序】

    登录窗体 using System; using System.Collections.Generic; using System.Data.SqlClient; using System.Linq; ...

  8. WinForm 窗体应用程序 (初步)之二

    现在,我们来了解一些基本控件.控件是放置在工具箱里的,你可以在界面的左侧或者通过菜单栏的视图选项找到它. (1)Label 控件 这是一个用于放置文字的控件,因为你不能在窗体上直接输入文字. (2)T ...

  9. WinForm 窗体应用程序(进阶)之一

    进程: 进程,简单的说,就是让你的程序启动另一个程序. 1.Process.Start("calc");//启动计算器 弊端:只认识系统自带的程序,如果写错系统会崩溃. 2. // ...

随机推荐

  1. asp.net使用控件datagrid实现表头单元格合并

    合并的要点: 1.datagid的单元格合并原理是table中tr,td的布局实现; 2.合并的时机实在其datagridcreate事件中实现; 3.认识一个对象TableCellCollectio ...

  2. JAVA 入门编程

    1.输入以及输出 当通过new Scanner(System.in)创建一个Scanner,控制台会一直等待输入,直到敲回车键结束,把所输入的内容传给Scanner,作为扫描对象.如果要获取输入的内容 ...

  3. NSFileManager计算文件/文件夹大小

    在一些软件中,一般都会给用户展现当前APP的内存,同时用户可以根据自己的需要来清除缓存的内容.一般而言,文件夹是没有大小这个属性的,所以需要遍历文件夹的内容来计算文件夹的大小,下面用NSFileMan ...

  4. 【LeetCode OJ】Binary Tree Level Order Traversal

    Problem Link: https://oj.leetcode.com/problems/binary-tree-level-order-traversal/ Traverse the tree ...

  5. 黑马----JAVA迭代器详解

    JAVA迭代器详解 1.Interable.Iterator和ListIterator 1)迭代器生成接口Interable,用于生成一个具体迭代器 public interface Iterable ...

  6. Ansible-Tower快速入门-7.配置实时事件【翻译】

    配置实时事件 在tower的菜单中,在接近用户菜单处有一个带有颜色的小点,这个带颜色的小点显示tower的实时事件功能的状态 如果这个小点是绿色的,表示运行正常,如果这个小点是红色或橙色,表示实时事件 ...

  7. sql表结构和注释

    SELECT 表名=case when a.colorder=1 then d.name else '' end, 表说明=case when a.colorder=1 then isnull(f.v ...

  8. 如何用js定义数组,用js来拼接json字段

    定义js数组的方式有: var arr = (); var arr = []; var arr = new Array(); 如何拼接成一个json字段. <!DOCTYPE HTML PUBL ...

  9. 利用html5的画布canvas进行图片压缩处理

    在网上找的代码,按自己的需求改了下,忘记在哪找的了.这里记着方便自己以后学习. // 参数,最大高度 //var MAX_HEIGHT = 100; var MAX_WIDTH = 200; // 渲 ...

  10. Python 基礎 - 字符轉編碼操作

    回顧字符編碼的前世今生 ASCII 只能儲英文或特殊字符,只占一個字節,一個字節8bit,不能儲中文,所以才出現Unicode Unicode 不管是中文或英文,都是占二個字節,一個字節8bit UT ...