带历史信息的菜单

带历史信息的菜单 

要实现保存最近打开的文件,可以将在菜单中最近打开文件的文件名和路径保存到事先建立的*.ini文件中,系统启动时读取*.ini中的数据建立数组菜单,即可实现显示历史菜单的功能。

添加一个MenuStrip菜单控件,并将主窗体的IsMdiContainer属性设为True 

将打开文件路径写入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);

        }

自定义方法ShowWindows()用来加载背景图片并显示窗体,实现代码如下:

 public void ShowWindows(string fileName) //自定义方法,加载背景图片并显示窗体
        {
            Image p = Image.FromFile(fileName); //对话框控件过滤器设置this.openFileDialog1.Filter = "图片|*.jpg|图片|*.gif";
            Form f = new Form();
            f.MdiParent = this; //设置或获取此窗体的当前多文档界面(MDI)父窗体; 窗体的IsMdiContainer属性设为True(确定窗体内有MDI容器)
            f.BackgroundImage = p;//获取或设置在控件中显示的背景图像
            f.Show();
        }

 

读取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());//读取INI文件并将信息加入菜单
                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);
        }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值