家庭装修风水学,惠普系统下载,djabc
在窗体中添加 menustrip 控件 ,添加 ‘打开’与 ‘最近文件’
using system;
using system.collections.generic;
using system.collections.specialized;
using system.io;
using system.linq;
using system.text;
using system.windows.forms;
/*******************************************************************
* copyright (c) 版权所有
* 文件名称:filehandler
* 命名空间:testrecentmenu
* 创建时间:2018/12/18 10:27:52
* 作 者: wangyonglai
* 描 述:
* 修改记录:
* 修改人:
* 版 本 号:v1.0.0
**********************************************************************/
namespace testrecentmenu
{
public class filehandler
{
/// <summary>
/// 最近文件菜单项
/// </summary>
public toolstripmenuitem recentfilemenu { get; set; }
private stringcollection filelist;
private int filenumbers;
public filehandler()
{
filenumbers = properties.settings.default.filenember;
filelist = properties.settings.default.filepaths;
if (filelist == null)
{
filelist = new stringcollection();
}
}
/// <summary>
/// 更新最近菜单单项
/// </summary>
public void updatemenu()
{
if (recentfilemenu == null) return;
int i;
//清除当前菜单项
for (i = recentfilemenu.dropdownitems.count - 1; i >= 0; i--)
{
recentfilemenu.dropdownitems.removeat(i);
}
for (i = 0; i < filelist.count; i++)
{
toolstripitem menuitem = new toolstripmenuitem();
menuitem.text = path.getfilename(filelist[i]);
menuitem.tag = filelist[i];
menuitem.click += menuitem_click;
recentfilemenu.dropdownitems.add(menuitem);
}
}
void menuitem_click(object sender, eventargs e)
{
//点击最近打开菜单项要执行的动作。
}
/// <summary>
/// 添加最近文件路径(每次打开文件时,调用该方法)
/// </summary>
/// <param name="filepath"></param>
public void addrecentfile(string filepath)
{
filelist.insert(0, filepath);
//从最后位置开始倒着找,如果找到一致名称,则移除旧记录
for (int i = filelist.count - 1; i > 0; i--)
{
for (int j = 0; j < i; j++)
{
if (filelist[i] == filelist[j])
{
filelist.removeat(i);
break;
}
}
}
//最后,仅保留指定的文件列表数量
for (int bynd = filelist.count - 1; bynd > filenumbers - 1; bynd--)
{
filelist.removeat(bynd);
}
properties.settings.default.filepaths = filelist;
properties.settings.default.save();
updatemenu();
}
}
}
filehandler filehandler;
private void form1_load(object sender, eventargs e)
{
filehandler = new filehandler();
filehandler.recentfilemenu = this.最近文件toolstripmenuitem;//指定 最近文件 的菜单值,方便动态创建文件菜单
filehandler.updatemenu();
}
private void 打开toolstripmenuitem_click(object sender, eventargs e)
{
openfiledialog fls = new openfiledialog();
if (fls.showdialog() == system.windows.forms.dialogresult.ok)
{
filehandler.addrecentfile(fls.filename);
}
}
效果图如下
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
Net Core Web Api项目与在NginX下发布的方法
asp.net core3.1 引用的元包dll版本兼容性问题解决方案
IdentityServer4实现.Net Core API接口权限认证(快速入门)
ASP.NET Core MVC通过IViewLocationExpander扩展视图搜索路径的实现
网友评论