日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

在Winform中菜单动态添加“最近使用文件”

發布時間:2023/12/13 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在Winform中菜单动态添加“最近使用文件” 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近在做文件處理系統中,要把最近打開文件顯示出來,方便用戶使用。網上資料有說,去遍歷“C:\Documents?and?Settings\Administrator\Recent”下的最近文檔本。文主要介紹在Winform界面菜單中實現【最近使用的文件】動態菜單的處理,實現一個較為常用的功能。

1 新建windform項目

在窗體中添加 menuStrip 控件 ,添加 ‘打開’與 ‘最近文件’

?

2 打開settings 文件,如下圖添加相關參數

?

?3 代碼處理過程

添加一個FileHandler 類,用戶處理配置文件中的類容熟悉以及菜單欄中的單項對象。代碼如下

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();}} }

4 在主界面中調用FileHandler相關函數

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);}}

  效果圖如下

?

轉載于:https://www.cnblogs.com/wangyonglai/p/10135746.html

總結

以上是生活随笔為你收集整理的在Winform中菜单动态添加“最近使用文件”的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。