C#窗体练习:带历史信息的菜单

在开发图纸管理软件时,要求在菜单上记录用户最近打开的档案或图纸,以方便下次使用。单击“文件”菜单下的“打开文件”子菜单,打开需要查阅的图纸。下次运行该软件时,上次打开的文件名记录到“文件”菜单的历史菜单中,选择该菜单,即可打开相应的图纸文件。
技术要点
要实现保存最近打开的文件,可以将在菜单中最近打开文件的文件名和路径保存到事先建立的*.ini文件中,系统启动时读取*.ini中的数据建立数组菜单,即可实现显示历史菜单的功能。
 注意:要建立一个带历史信息的菜单,必须首先添加一个MenuStrip菜单控件,并将主窗体的IsMdiContainer属性设为True。
实现过程
(1)创建一个项目,将其命名为Ex01_01,默认窗体为Form1。
(2)从工具箱中向Form1窗体添加MenuStrip控件,同时向窗体添加OpenFileDialog控件。创建一个“文件”主菜单,在其下面创建打开、关闭所有、退出等菜单选项。
(3)主要程序代码。
将打开文件路径写入INI文件的实现代码如下:

private void 打开ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            openFileDialog1.FileName = "";
            this.openFileDialog1.ShowDialog();
            StreamWriter s = new StreamWriter(address + "\\Menu.ini", true);
            s.WriteLine(openFileDialog1.FileName);//写入INI文件
            s.Flush();
            s.Close();
            ShowWindows(openFileDialog1.FileName);
        }

读取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)//读取INI文件
            {
                ToolStripMenuItem menuitem = new ToolStripMenuItem(sr.ReadLine());
                this.文件ToolStripMenuItem.DropDownItems.Insert(i, menuitem);
                i++;
                menuitem.Click += new EventHandler(menuitem_Click);
            }
            sr.Close();

原文地址:https://www.cnblogs.com/amosyang/p/11737321.html

时间: 2024-10-13 07:38:50

C#窗体练习:带历史信息的菜单的相关文章

delphi 带历史信息的菜单

带历史信息的菜单 实例说明 在有些软件中,菜单栏中可以记录已经打开过的文件信息,使用户操作简单.快捷.当用户要打开已打开过的文件时,不需要重复查找,只需选择菜单中打开过的文件,即可实现打开该文件的操作.运行本例,效果如图1所示. 图1  带历史信息的菜单 思路与技术 本例使用的是动态插入菜单的技术,利用菜单的动态插入技术,可以完成在菜单中记录打开过文档的功能,即当打开一个文件后,将这个文件的完整路径插入到菜单的相应位置.主要用到了TMainMenu组件的Insert()方法.在菜单的OnChan

带历史信息的菜单

实现效果: 知识运用: ToolStripMenuItem菜单项中DropDownItems集合的Insert方法 public void Insert( int index,ToolStripItem value ) 实现代码: private void Add_Items() { if (File.Exists(address)) { StreamReader sr = new StreamReader(address); //创建流读取器对象 int i = 文件FToolStripMen

自定义右键菜单,禁用浏览器自带的右键菜单[右键菜单实现--Demo]

许多从事Web开发的会发现有些事,我们需要禁用浏览器本事自带的右键菜单,而实现自定义的右键菜单下面我们也来实现一个自定义的右键菜单 首先来创建JSP页面 1 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> 2 <html> 3 <head> 4 <title>右键菜单</title> 5 <s

iOS之UITableView带滑动操作菜单的Cell

制作一个可以滑动操作的 Table View Cell 本文翻译自 http://www.raywenderlich.com/62435/make-swipeable-table-view-cell-actions-without-going-nuts-scroll-views 原作者:Ellen Shapiro Apple 通过 iOS 7 的邮件(Mail)应用介绍了一种新的用户界面方案——向左滑动以显示一个有着多个操作的菜单.本教程将会向你展示如何制作一个这样的 Table View Ce

Winform窗体设计器上的菜单及工具栏上的图标不见恢复解决方案

前段时间有朋友问我,他在设计窗体的时候由于资源文件未找到, 运行后发现窗口中的菜单栏上没有任何菜单项,工具栏上的图标按钮也都不见了, 遇到这种情况,不要急着把该窗体的资源文.设计文件和代码文件删除,否则又要从头开始,得不偿失. 这时,首先看自己的窗体资源文件是否缺少图标文件,打个比方对于窗体BrowseQuestion, 首先打开BrowseQuestion.resx文件,如果没有缺少图标文件,则打开BrowseQuestion.designer.cs文件, 打开窗体设计器自动生成的代码并展开,

android自带DrawerLayout滑动菜单的使用

受到slidingMenu的启发android增加了DrawerLayout来实现滑动菜单 DrawerLayout是继承自ViewGroup,可以在其中放子view.DrawerLayout中分为主内容区和菜单区域 使用方法如下 1.和普通的LinearLayout一样 <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" androi

给Notepad++ 加带图标右键菜单

方式一: 复制以下代码建立一个reg文件,替换相关路径,保存,双击运行加入注册表 Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\*\shell\Notepad++]@="使用Notepad++打开""Icon"="C:\\Program Files\\Notepad++\\Notepad++.exe" [HKEY_CLASSES_ROOT\*\shell\Notepad++\Com

kindeditor集成ckplayer(带右键编辑菜单)

相信好多朋友为开源web编辑器没有集成视频播放器而烦恼,于是我就是试着修改了一下kindeditor,其实ueditor应该也是同样的,好了不多说了直接上图吧 kindeditor版本: 4.1.7 http://kindeditor.net/ ckplayer 版本:6.4 http://www.ckplayer.com/ 1.在kindeditor\ckeditor\plugins下新建文件夹insertVideo 2.将ckplayer文件夹拷贝到kindeditor\ckeditor\p

C#实例:5个.net经典例子(窗体与界面设计)

实例001  带历史信息的菜单 实例说明 在开发图纸管理软件时,要求在菜单上记录用户最近打开的档案或图纸,以方便下次使用.如图1.1所示,单击“文件”菜单下的“打开文件”子菜单,打开需要查阅的图纸.下次运行该软件时,上次打开的文件名记录到“文件”菜单的历史菜单中,选择该菜单,即可打开相应的图纸文件. 技术要点 要实现保存最近打开的文件,可以将在菜单中最近打开文件的文件名和路径保存到事先建立的*.ini文件中,系统启动时读取*.ini中的数据建立数组菜单,即可实现显示历史菜单的功能. 注意:要建立