回 帖 发 新 帖 刷新版面

主题:关于带历史信息的菜单

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;

namespace 带历史信息的菜单
{
    public partial class Form1 : Form
    {
        string adress;
        public Form1()
        {
            InitializeComponent();
            adress = System.Environment.CurrentDirectory;//设定当前目录下的完全限定地址
        }
        private void 打开ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            openFileDialog1.FileName = "";
            this.openFileDialog1.ShowDialog();
            StreamWriter sw = new StreamWriter(adress + "\\Menu.ini", true);
            sw.WriteLine(openFileDialog1.FileName);
            sw.Flush();
            sw.Close();
            //this.axWindowsMediaPlayer1.URL = this.openFileDialog1.FileName;
            //this.axWindowsMediaPlayer1.Show();
            showWindows(openFileDialog1.FileName);
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            StreamReader sr = new StreamReader(adress + "\\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);

        }
        public void showWindows(string fileName)
        {
            Image p = Image.FromFile(fileName);
            Form f = new Form();
            f.MdiParent = this;
            f.BackgroundImage = p;
            f.Show();
        }
    }
}

回复列表 (共2个回复)

沙发

这要看你原本有多少个菜单项了

板凳

只要将打开的信息序列化到XML文件,主窗体的Load事件中获取XML信息,并将信息反应到动态创建的菜单项中即可。最好在限定记录文件的数目,比如5,不然以后菜单项就无限制的增加了。

我来回复

您尚未登录,请登录后再回复。点此登录或注册