(1)创建一个项目,将其命名为MenuHistory,默认窗体为Form1。

(2)从工具箱中向Form1窗体添加MenuStrip控件,同时向窗体添加OpenFileDialog控件。创建一个“文件”主菜单,在其下面创建打开、关闭所有、退出等菜单选项。

(3)代码如下:

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.IO;





namespace HistoryRecord

{

    public partial class Form1 : Form

    {

        //string address;

        public Form1()

        {

            InitializeComponent();

            //address = System.Environment.CurrentDirectory;

        }



        //相对路径

        string address = System.Environment.CurrentDirectory;



        //将打开的路径写入到INI文件

        private void 打开ToolStripMenuItem_Click(object sender, EventArgs e)

        {

            openFileDialog1.FileName = "";

            this.openFileDialog1.ShowDialog();

            StreamWriter s = new StreamWriter(address + "\\Menu.ini", true);//true:

            s.WriteLine(openFileDialog1.FileName);//写入INI文件

            s.Flush();//清空缓存数据,并将缓存数据写入基础流

            s.Close();          

        }

        //读取INI文件,并将信息加入菜单

        private void Form1_Load(object sender, EventArgs e)

        {

            StreamReader sr = new StreamReader(address + "\\Menu.ini");           

            int i = this.文件ToolStripMenuItem.DropDownItems.Count - 2;

            while (sr.Peek() >= 0)

            {

                ToolStripMenuItem menuitem = new ToolStripMenuItem(sr.ReadLine());

                this.文件ToolStripMenuItem.DropDownItems.Insert(i, menuitem);

                i++;

                menuitem.Click += new EventHandler(menuitem_Click);

            }

            sr.Close();

        }



        private void menuitem_Click(object sender, EventArgs e)

        {

            ToolStripMenuItem menu = (ToolStripMenuItem)sender;

            ShowWindows(menu.Text);

        }





        //自定义方法ShowWindows()用来加载背景图片并显示窗体

        public void ShowWindows(string fileName)

        {

            Image p = Image.FromFile(fileName);

            Form f = new Form();

            f.MdiParent = this;            

            f.BackgroundImage = p;

            f.Show();        

        }



        private void 关闭所有ToolStripMenuItem_Click(object sender, EventArgs e)

        {

            //用遍历获取所有子窗体 

            foreach (Form frm in this.MdiChildren)

            {

                frm.Close(); //关闭子窗体

            }   

        }



        private void 退出ToolStripMenuItem_Click(object sender, EventArgs e)

        {

            Application.Exit();

        }

    }

}

扩展:

1:菜单项打开隐藏按钮,菜单不关闭

//菜单点击打开隐藏时不关闭

            this.文件ToolStripMenuItem.ShowDropDown();

2:文件夹选项,A事件调用B事件

//调用菜单下的选项点击事件

                    this.文件ToolStripMenuItem.DropDownItems[3].PerformClick();

版权声明:本文为博主原创文章,未经博主允许不得转载。

winform 菜单项显示历史记录 分类: WinForm 2014-07-11 18:15 196人阅读 评论(0) 收藏的更多相关文章

  1. mount命令以及mount ntfs硬盘权限权限与显示的问题 分类: shell ubuntu 2014-11-08 18:29 148人阅读 评论(0) 收藏

    sudo mount -t 文件系统类型 -o 可设置选项 设备路经 访问路经 #常用文件类型如下: iso9660 光驱文件系统, vfat fat/fat32分区, ntfs ntfs分区, sm ...

  2. 由 argv引出的main参数 分类: C/C++ 2014-11-08 18:00 154人阅读 评论(0) 收藏

    我们经常用的main函数都是不带参数的.因此main 后的括号都是空括号.实际上,main函数可以带参数,这个参数可以认为是 main函数的形式参数.C语言规定main函数的参数只能有两个, 习惯上这 ...

  3. 博弈论入门小结 分类: ACM TYPE 2014-08-31 10:15 73人阅读 评论(0) 收藏

    文章原地址:http://blog.csdn.net/zhangxiang0125/article/details/6174639 博弈论:是二人或多人在平等的对局中各自利用对方的策略变换自己的对抗策 ...

  4. Rebuild my Ubuntu 分类: ubuntu shell 2014-11-08 18:23 193人阅读 评论(0) 收藏

    全盘格式化,重装了Ubuntu和Windows,记录一下重新配置Ubuntu过程. //build-essential sudo apt-get install build-essential sud ...

  5. 灰度世界算法(Gray World Algorithm) 分类: 图像处理 Matlab 2014-12-07 18:40 874人阅读 评论(0) 收藏

    人的视觉系统具有颜色恒常性,能从变化的光照环境和成像条件下获取物体表面颜色的不变特性,但成像设备不具有这样的调节功能, 不同的光照环境会导致采集的图像颜色与真实颜色存在一定程度的偏差,需要选择合适的颜 ...

  6. Bzoj 1036 树的统计 分类: ACM TYPE 2014-12-29 18:55 72人阅读 评论(0) 收藏

    Description 一棵树上有n个节点,编号分别为1到n,每个节点都有一个权值w.我们将以下面的形式来要求你对这棵树完成一些操作: I. CHANGE u t : 把结点u的权值改为t II. Q ...

  7. PIGS 分类: POJ 图论 2015-08-10 09:15 3人阅读 评论(0) 收藏

    PIGS Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 18209 Accepted: 8277 Description Mir ...

  8. Pots 分类: 搜索 POJ 2015-08-09 18:38 3人阅读 评论(0) 收藏

    Pots Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 11885 Accepted: 5025 Special Judge D ...

  9. The Happy Worm 分类: POJ 排序 2015-08-03 18:57 5人阅读 评论(0) 收藏

    The Happy Worm Time Limit: 5000MS Memory Limit: 131072K Total Submissions: 4698 Accepted: 1047 Descr ...

随机推荐

  1. Codeforces 549C The Game Of Parity(博弈)

    The Game Of Parity Solution: 这个题只需要分类讨论就可以解决. 先分别统计奇数和偶数的个数. 然后判断谁走最后一步,如果走最后一步时候同时有偶数和奇数,那么走最后一步的赢. ...

  2. wamp不能使用phpmyadmin,提示“You don't have permission to access /phpmyadmin/ on this server.” 转载

    换了win8之后wamp明显不怎么好用了,显示80端口被system占用,后是masql出现了403错误,多番百度谷歌找到了解决方案,这里与大家分享 当你安装完成wamp后,打开localhost或i ...

  3. 1.document.write(""); 输出语句

    1.document.write(""); 输出语句 2.JS中的注释为// 3.传统的HTML文档顺序是:document->html->(head,body) 4. ...

  4. PHP实战开发教程

    对于PHP初学者来说,一上手就学习庞大的PHP语法无疑很打击自信心.其实即便是很熟练的程序员,也未必对所有的语法非常熟悉.通常熟练的程序员比普通的程序员的优势在于对基本语法的理解非常透彻,而且常用的一 ...

  5. Activity singleTop启动模式

    栈顶单例模式 和standard模式一样,  只有Activity已经存在并且位于栈顶时, 不会重新创建. 其他时候都会创建新的Activity,然后放在栈顶

  6. 【python】只执行普通除法:添加 from __future__ import division

    from __future__ import division 注意future前后是两个下划线

  7. Spring 初学 1

    Spring是一个轻量级的框架,他有自己的MVC框架SpringMVC,在以往的Web项目中大多采用Structs2+hibernate+Spring的框架,Structs做web层,Hibernat ...

  8. WPF学习之路初识

    WPF学习之路初识   WPF 介绍 .NET Framework 4 .NET Framework 3.5 .NET Framework 3.0 Windows Presentation Found ...

  9. ubuntu修改主机名称

    一.为何要修改主机名称 在安装Ubuntu时,一不小心主机名称输入的“too long”了,导致命令行上就提示符占据了一行的1/3,迫使我产生修改主机名称的冲动. 二.操作方法 原理:系统启动时,会从 ...

  10. Java面试题相关内容

    选择题(共5题,每题1.5分,共75分.多选题选不全或选错都不得分.)1. 以下属于面向对象的特征的是(C,D).(两项)A) 重载B) 重写C) 封装D) 继承 2. 以下代码运行输出是(C)pub ...