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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

C# 系统应用之ListView控件 (三).添加ContextMenuStrip右键菜单打开删除文件

發布時間:2024/5/28 C# 56 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C# 系统应用之ListView控件 (三).添加ContextMenuStrip右键菜单打开删除文件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

??????? 在前面講述過使用TreeView控件和ListView控件顯示磁盤目錄信息,但僅僅是顯示信息是不夠的,我們還需要具體的操作.在"個人電腦使用歷史痕跡"項目中我還需要添加"打開文件"和“刪除文件”兩種方法.具體如下:
??????? 在第一篇文章"C# 系統應用之TreeView控件 (一).顯示樹狀磁盤文件目錄及加載圖標"中顯示如下:
??????? http://blog.csdn.net/eastmount/article/details/19453107
? ? ? ? 免費下載地址:http://download.csdn.net/detail/eastmount/7414709


??????? 在第二篇文章"C# 系統應用之ListView控件 (二).加載選中節點文件夾下文件信息"中顯示加載文件信息,如下圖所示:http://blog.csdn.net/eastmount/article/details/21241313


??????? 該文章第三篇主要講述的是為ListView控件中顯示的文件添加一個鼠標右鍵菜單欄"打開文件"和"刪除文件",打開文件能打開具體的文件,刪除文件能刪除至回收站.效果圖如下圖所示:
??????? 打開文件


??????? 刪除文件


一.添加控件ContextMenuStrip
??????? 首先添加一個ContextMenuStrip控件(右鍵關聯控件顯示相關菜單),并在"請在此處鍵入"處添加"打開文件"和"刪除文件"兩欄,將添加兩項的Name設置為openFileToolStripMenuItem和deleteFileToolStripMenuItem.(否則為中英名)
??????? 然后為filesList(ListView)控件添加鼠標事件,添加代碼如下:

#region 鼠標右擊事件 添加contextMenuStrip控件 private void filesList_MouseClick(object sender, MouseEventArgs e) {//禁止多選filesList.MultiSelect = false;//鼠標右鍵if (e.Button == MouseButtons.Right){//filesList.ContextMenuStrip = contextMenuStrip1;//選中列表中數據才顯示 空白處不顯示String fileName = filesList.SelectedItems[0].Text; //獲取選中文件名Point p = new Point(e.X, e.Y);contextMenuStrip1.Show(filesList, p);} } #endregion

??????? 此時,運行軟件點擊文件就會添加了相應的菜單欄.
二.打開文件
??????? 現在需要添加打開文件功能.需要自定義兩個全局變量記錄打開文件的路徑和名稱.

//全局變量 public string fileNamePublic = ""; //文件名 public string filePathPublic = ""; //文件路徑

??????? 在更改選定內容AfterSelect事件中為選中的路徑賦值,同時為openFileToolStripMenuItem添加Click事件.具體代碼如下:

#region 打開文件操作 //設置contextMenuStrip1控件中"打開文件"Name為openFile private void openFileToolStripMenuItem_Click(object sender, EventArgs e) {//文件沒有選中if (this.filesList.SelectedItems.Count == 0)return;//獲取選中文件var selectedItem = this.filesList.SelectedItems[0];//全局變量文件名 SubItems[1]表示文件名fileNamePublic = filePathPublic + "\\" + selectedItem.SubItems[1].Text;//MessageBox.Show(fileNamePublic);try{//實例化一個新的Process類 命名空間using System.Diagnostics;using (Process p = new Process()){p.StartInfo.FileName = fileNamePublic; //指定要啟動的文件路徑p.StartInfo.CreateNoWindow = false; //在當前窗口啟動程序//指定窗口的顯示樣式p.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Normal;p.StartInfo.UseShellExecute = true; //使用操作系統的shell啟動進程p.Start(); //開始打開文件}}catch (Exception msg) //異常處理{MessageBox.Show(msg.Message);} } #endregion

??????? 它是通過實例化一個Process進程類,指定ProcessStartInfo參數,調用Process的Start()方法執行打開文件.
三.刪除文件
??????? 刪除文件開始準備的方法是使用File.Delete刪除,但是刪除的文件并不是添加至回收站的,同時系統文件不能訪問.所以采用了SHFileOperation外殼函數實現文件操作.為deleteFileToolStripMenuItem添加Click事件,具體代碼如下:

#region 刪除文件 //刪除文件 //文件刪除到回收站中 private const int FO_DELETE = 3; //刪除 private const int FOF_SILENT = 0x0004; //不顯示進度條提示框 private const int FOF_NOCONFIRMATION = 0x0010; //不出現任何對話框 private const int FOF_ALLOWUNDO = 0x0040; //允許撤銷 private const int FOF_NOCONFIRMMKDIR = 0x0200; //創建文件夾的時候不用確認//添加命名空間using System.Runtime.InteropServices; [StructLayout(LayoutKind.Sequential)] private struct SHFILEOPSTRUCT {public int hwnd; //父窗口句柄,0為桌面public int wFunc; //功能標志 FO_COPY復制 FO_DELETE刪除 FO_MOVE移動 FO_RENAME重命名public string pFrom; //source file源文件或者源文件夾public string pTo; //destination目的文件或文件夾public int fFlags; //控制文件的標志位 FOF_ALLOWUNDO 準許撤銷 FOF_CONFIRMMOUSE 沒有被使用public bool fAnyOperationsAborted;public int hNameMappings;public string lpszProgressTitle; }//SHFileOperation外殼函數 實現文件操作 參數SHFILEOPSTRUCT結構 [DllImport("shell32.dll")] private static extern int SHFileOperation(ref SHFILEOPSTRUCT FileOp);/// <summary> /// 刪除文件 Delete("c:\\test.txt",true) 把"c:/test.text"刪除到回收箱 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private static int Delete(string sPath, bool recycle) {SHFILEOPSTRUCT FileOp = new SHFILEOPSTRUCT();FileOp.hwnd = 0;FileOp.wFunc = FO_DELETE; //實現操作是刪除文件FileOp.fFlags = 0;FileOp.fFlags = FileOp.fFlags | FOF_SILENT;FileOp.fFlags = FileOp.fFlags | FOF_NOCONFIRMATION;FileOp.fFlags = FileOp.fFlags | FOF_NOCONFIRMMKDIR;if (recycle){FileOp.fFlags = FileOp.fFlags | FOF_ALLOWUNDO;}FileOp.pFrom = sPath + "\0";return SHFileOperation(ref FileOp); }//設置contextMenuStrip1控件中"刪除文件"Name為deleteFile private void deleteFileToolStripMenuItem_Click(object sender, EventArgs e) {//文件沒有選中if (this.filesList.SelectedItems.Count == 0)return;//獲取選中文件var selectedItem = this.filesList.SelectedItems[0];//全局變量文件名 SubItems[1]表示文件名fileNamePublic = filePathPublic + "\\" + selectedItem.SubItems[1].Text;//MessageBox.Show(fileNamePublic);try{if (MessageBox.Show("確認要刪除該最近瀏覽文件信息?", "提示",System.Windows.Forms.MessageBoxButtons.YesNo,System.Windows.Forms.MessageBoxIcon.Question) ==System.Windows.Forms.DialogResult.Yes){//刪除文件Delete(fileNamePublic, true);//移除文件foreach (ListViewItem item in this.filesList.SelectedItems){this.filesList.Items.Remove(item);}}MessageBox.Show(this, "成功刪除了文件!", "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);}catch (Exception msg) //異常處理{MessageBox.Show(msg.Message);} } #endregion

四.總結
???????
最后,希望該文章對大家有所幫助.這三篇文章主要講述了如何使用C#的TreeView控件加載磁盤目錄信息,同時在ListView控件中顯示具體信息,為ListView控件添加鼠標右鍵ContextMenuStrip控件菜單欄.在這幾篇文章中你可以實現到項目中的:
???????
1.如何使用TreeView控件添加圖標,添加節點及其展開事件
??????? 2.如何使用ListView控件加載數據,設置標題頭、添加數據、listItem.SubItems.Add等,尤其在數據庫處理等操作或顯示信息時,經常會應用到該控件顯示內容
??????? 3.如何為控件添加右鍵菜單欄ContextMenuStrip,并設置其Item,為其添加相應的響應事件
??????? 最后,希望文章對大家有所幫助,如果文章中有錯誤或不足之處,還請海涵.我這系列文章最后的運行效果如下圖所示,高仿360同時能實現各種功能,具體參照博客每部分:

?


??????? 上面的打開刪除文件源代碼地址:http://download.csdn.net/detail/eastmount/7414709
?


(By:Eastmount 2014-5-28 夜8點 原創CSDNhttp://blog.csdn.net/eastmount/)

?

總結

以上是生活随笔為你收集整理的C# 系统应用之ListView控件 (三).添加ContextMenuStrip右键菜单打开删除文件的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 无码国内精品人妻少妇蜜桃视频 | 亚洲国产欧美一区二区三区深喉 | 色资源在线 | 黄色的视频网站 | 久久av秘一区二区三区 | 快色污 | 欧美专区在线观看 | 色天天av | 九九热在线精品视频 | 鲁一鲁在线视频 | 在线播放av网站 | 午夜成人在线视频 | 欧美极品三级 | www.日韩.com| 黑人操白妞 | 在线www | 国产视频一级 | 欧美日韩中文字幕一区 | 国产精品熟女久久久久久 | 精品无码国产污污污在线观看 | 国产激情视频网站 | 免费在线观看黄色网址 | 一级免费在线观看 | 素人一区 | 999在线观看视频 | 国产乱人乱偷精品视频 | 男女性杂交内射妇女bbwxz | 色婷婷av一区二区三区在线观看 | 精品一区二区三区在线免费观看 | 黄色伊人网 | 欧美巨大荫蒂茸毛毛人妖 | 人人爽爽人人 | 久久6精品 | 日韩在线电影一区二区 | 国产黄a三级三级三级 | 午夜视频福利网站 | 蜜臀视频一区二区三区 | 黄色小视频免费观看 | 91操操操| 亚洲欧美日韩国产成人精品影院 | 日韩不卡视频在线观看 | 日本一二三区视频在线 | 天堂8在线天堂资源bt | 亚洲第一色站 | a级在线观看 | 红色假期黑色婚礼2 | 亚欧洲精品视频在线观看 | 五月天婷婷导航 | 69网站在线观看 | 中国女人特级毛片 | 三级黄在线观看 | 国产精品久久久久久久裸模 | 制服一区 | 激情亚洲视频 | 妞妞影视 | 午夜精品久久99蜜桃的功能介绍 | 国产另类在线 | 亚洲一区二区三区午夜 | 乱一色一乱一性一视频 | 夫の上司に犯波多野结衣853 | 波多野结衣一区二区三区高清av | 色视频在线观看免费 | 亚洲黄色在线播放 | 日本亲与子乱ay中文 | 女同性69囗交 | 97一级片 | 操大爷影院 | 刘亦菲一区二区三区免费看 | 蜜臂av| 尤物网址在线观看 | 国产成a人亚洲精v品在线观看 | 69xx免费视频 | 男女激情av | 超碰公开免费 | 67194少妇在线观看 | 日本特黄特色aaa大片免费 | 无码一区二区波多野结衣播放搜索 | 精品久久久久久 | 任你躁av一区二区三区 | 日本三级韩国三级三级a级中文 | 成人在线观看黄色 | 99免费在线观看 | 国产一区二区久久 | 天堂8中文在线 | 亚洲天堂小说 | 97一级片 | 毛片9 | 91亚洲国产成人久久精品网站 | 在线人成| 国产麻豆免费观看 | 97超碰人人干 | 国产乱子伦精品无码专区 | 日本欧美一本 | 快乐激情网 | 国产精品99无码一区二区视频 | 欧美生活一级片 | 欧美一级欧美三级 | 日本黄色片免费看 | 黄瓜视频在线观看 |