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

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

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

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. lumia520刷机注意事项

    1.下载后的固件名称中设备名前的随机字符都要去掉 2.安装完nokia care suit后最好在driver目录下重新双击安装usb driver

  2. maya的卡通渲染

    为了统一工作流,给maya也做了个卡通shader:

  3. 12、(扩展)获取省份表,填充于下拉列表框的简易js

    在制作省份下拉列表时,我们常常会遇到大量省份不停复制粘贴的问题,比如百度到这样一个填充着省份信息的表格: 里面含有很多条数据和内容,这时候要一条一条复制粘贴非常繁冗,所以在同事的启发下我写了一个简易的 ...

  4. <转>思考力是万力之源

    做任何事情,要懂得积累和总结 每天进步一点点,一年365天下来就不得了   来自为知笔记(Wiz)

  5. Voreen (二) 入点出点计算

    继第一篇Voreen的文章介绍主流程以后,第二篇介绍Raycast的第一个绘制Pass,根据代理几何体绘制出入点出点.如上次所说,OptimizedProxyGeometry负责生成表示体数据的代理几 ...

  6. 关于discuz“终于解决“头像保存过程中发生网络错误,请重试"”的解决方法

    1 php.ini里面allow_url_fopen = On2 将php.ini中的;upload_tmp_dir = 该行的注释符,即前面的分号“:”去掉,使该行在php.ini文档中起作用.up ...

  7. dsfgsdfg

    两融余额止跌回升,金融股回落飘绿,千股涨停续演,沪指收复4000点未果涨逾2% 相关报道 [今日收盘]灾后重建激情抢筹 大盘两日反弹500点 [今日收盘]沪指涨近6%重回3700点 未停牌个股九成涨停 ...

  8. android摇一摇实现(仿微信)

    这个demo模仿的是微信的摇一摇,是一个完整的demo,下载地址在最下面.下面是demo截图:                 步驟: 1.手机摇动监听,首先要实现传感器接口SensorEventLi ...

  9. Project Woosah Tu (五色土)

    I bought this Raspberry Pi (model B) in spring 2013, I hadn't done too much with it except for some ...

  10. mongodb字段类型转化

    最近在使用mongoDB, 发现mongo对字段类型的定义并不是很严格,完全依赖传入数据的类型,在加上PHP是弱类型的语言,所以难免会出现一些错误.如果预想的类型是Int型,但数据存储的是String ...