返回首页

{S0}简介
创建一个应用程序时,有时是非常有用的,如果你想创建anbsp;最近的文件列表作为一个快捷方式打开一个以前打开的文件。这使得打开一个文件看起来简单,方便的。使用代码
要创建一个最近的文件列表,我们只是需要三种方法:保存文件列表
这种方法被称为每当你想要将项目添加到列表,并将其保存。通常情况下,这个项目是以前打开的文件的路径。 加载文件列表
这种方法是从文件加载列表,但不将它插入菜单。通常情况下,这种方法被称为form_load时,要刷新列表和列表菜单。最近的文件点击
这是一个单击处理程序,当用户点击菜单。通常情况下,重新打开一个文件。 "守则"保存文件列表

private void SaveRecentFile(string path)

{

    //clear all recent list from menu

    recentToolStripMenuItem.DropDownItems.Clear(); 

    LoadRecentList(); //load list from file

    if (!(MRUlist.Contains(path))) //prevent duplication on recent list

       MRUlist.Enqueue(path); //insert given path into list

    //keep list number not exceeded the given value

    while (MRUlist.Count > MRUnumber ) 

    {

       MRUlist.Dequeue();

    }

    foreach (string  item in MRUlist )

    {

       //create new menu for each item in list

       ToolStripMenuItem fileRecent = new ToolStripMenuItem

					(item, null, RecentFile_click);  

       //add the menu to "recent" menu

       recentToolStripMenuItem.DropDownItems.Add(fileRecent); 

    }

    //writing menu list to file

    //create file called "Recent.txt" located on app folder

    StreamWriter stringToWrite = 

	new StreamWriter(System.Environment.CurrentDirectory + "\\Recent.txt"); 

    foreach (string  item in MRUlist )

    {

       stringToWrite.WriteLine(item); //write list to stream

    }

    stringToWrite.Flush(); //write stream to file

    stringToWrite.Close(); //close the stream and reclaim memory

}
加载文件列表{C}最近的文件点击
,这里的这些方法被称为:
private void Form1_Load(object sender, EventArgs e)

{

   LoadRecentList(); //load a configuration-like file containing recent list

   foreach (string  item in MRUlist )

   {

       //populating menu

       ToolStripMenuItem fileRecent = 

		new ToolStripMenuItem(item, null, RecentFile_click);  

       //add the menu to "recent" menu

       recentToolStripMenuItem.DropDownItems.Add(fileRecent); 

    }

}

private void openToolStripMenuItem_Click(object sender, EventArgs e)

{ ...

   //insert new item after open a file

   SaveRecentFile(openFileDialog1.FileName); 

 ...

}

因此,它简单但有用的代码。历史第二年1月,2009年:战后初期

回答

评论会员:zippy1981 时间:2011/12/28
我开发了一个类似的方法我的程序PlaneDisaster.NET(http://plane-disaster.sourceforge.net/)最近的文件菜单。
一个基本的区别是我使用System.Configuration命名空间,而不是原始数据文件IO。
我也提出一个模板的代码,并在SharpDevelop(http://www.icsharpcode.net/OpenSource/SD/)

您的解决方案可能使resuces System.Configuration大会上的依赖,因为它有没有配置文件的应用程序意识。

的问候,

贾斯汀迪林
评论会员:asugix 时间:2011/12/28
感谢的,
我不知道system.configuration。我使用的设置,从项目菜单中的变量,但目标机器上安装的应用程序必须保存设置工作。这就是我为什么使用原始文件IO,使我的应用程序的可移植性(当然不仅是因为在Vista。NET依赖)。此外,很容易,如果只是保存最近文件。

没有人能阻止我学习的东西