带历史信息的菜单
要实现保存最近打开的文件,可以将在菜单中最近打开文件的文件名和路径保存到事先建立的*.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);
}