C# 系统应用之ListView控件 (三).添加ContextMenuStrip右键菜单打开删除文件
??????? 在前面講述過(guò)使用TreeView控件和ListView控件顯示磁盤(pán)目錄信息,但僅僅是顯示信息是不夠的,我們還需要具體的操作.在"個(gè)人電腦使用歷史痕跡"項(xiàng)目中我還需要添加"打開(kāi)文件"和“刪除文件”兩種方法.具體如下:
??????? 在第一篇文章"C# 系統(tǒng)應(yīng)用之TreeView控件 (一).顯示樹(shù)狀磁盤(pán)文件目錄及加載圖標(biāo)"中顯示如下:
??????? http://blog.csdn.net/eastmount/article/details/19453107
? ? ? ? 免費(fèi)下載地址:http://download.csdn.net/detail/eastmount/7414709
??????? 在第二篇文章"C# 系統(tǒng)應(yīng)用之ListView控件 (二).加載選中節(jié)點(diǎn)文件夾下文件信息"中顯示加載文件信息,如下圖所示:http://blog.csdn.net/eastmount/article/details/21241313
??????? 該文章第三篇主要講述的是為L(zhǎng)istView控件中顯示的文件添加一個(gè)鼠標(biāo)右鍵菜單欄"打開(kāi)文件"和"刪除文件",打開(kāi)文件能打開(kāi)具體的文件,刪除文件能刪除至回收站.效果圖如下圖所示:
??????? 打開(kāi)文件
??????? 刪除文件
一.添加控件ContextMenuStrip
??????? 首先添加一個(gè)ContextMenuStrip控件(右鍵關(guān)聯(lián)控件顯示相關(guān)菜單),并在"請(qǐng)?jiān)诖颂庢I入"處添加"打開(kāi)文件"和"刪除文件"兩欄,將添加兩項(xiàng)的Name設(shè)置為openFileToolStripMenuItem和deleteFileToolStripMenuItem.(否則為中英名)
??????? 然后為filesList(ListView)控件添加鼠標(biāo)事件,添加代碼如下:
??????? 此時(shí),運(yùn)行軟件點(diǎn)擊文件就會(huì)添加了相應(yīng)的菜單欄.
二.打開(kāi)文件
??????? 現(xiàn)在需要添加打開(kāi)文件功能.需要自定義兩個(gè)全局變量記錄打開(kāi)文件的路徑和名稱.
??????? 在更改選定內(nèi)容AfterSelect事件中為選中的路徑賦值,同時(shí)為openFileToolStripMenuItem添加Click事件.具體代碼如下:
#region 打開(kāi)文件操作 //設(shè)置contextMenuStrip1控件中"打開(kāi)文件"Name為openFile private void openFileToolStripMenuItem_Click(object sender, EventArgs e) {//文件沒(méi)有選中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{//實(shí)例化一個(gè)新的Process類 命名空間using System.Diagnostics;using (Process p = new Process()){p.StartInfo.FileName = fileNamePublic; //指定要啟動(dòng)的文件路徑p.StartInfo.CreateNoWindow = false; //在當(dāng)前窗口啟動(dòng)程序//指定窗口的顯示樣式p.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Normal;p.StartInfo.UseShellExecute = true; //使用操作系統(tǒng)的shell啟動(dòng)進(jìn)程p.Start(); //開(kāi)始打開(kāi)文件}}catch (Exception msg) //異常處理{MessageBox.Show(msg.Message);} } #endregion??????? 它是通過(guò)實(shí)例化一個(gè)Process進(jìn)程類,指定ProcessStartInfo參數(shù),調(diào)用Process的Start()方法執(zhí)行打開(kāi)文件.
三.刪除文件
??????? 刪除文件開(kāi)始準(zhǔn)備的方法是使用File.Delete刪除,但是刪除的文件并不是添加至回收站的,同時(shí)系統(tǒng)文件不能訪問(wèn).所以采用了SHFileOperation外殼函數(shù)實(shí)現(xiàn)文件操作.為deleteFileToolStripMenuItem添加Click事件,具體代碼如下:
四.總結(jié)
??????? 最后,希望該文章對(duì)大家有所幫助.這三篇文章主要講述了如何使用C#的TreeView控件加載磁盤(pán)目錄信息,同時(shí)在ListView控件中顯示具體信息,為L(zhǎng)istView控件添加鼠標(biāo)右鍵ContextMenuStrip控件菜單欄.在這幾篇文章中你可以實(shí)現(xiàn)到項(xiàng)目中的:
??????? 1.如何使用TreeView控件添加圖標(biāo),添加節(jié)點(diǎn)及其展開(kāi)事件
??????? 2.如何使用ListView控件加載數(shù)據(jù),設(shè)置標(biāo)題頭、添加數(shù)據(jù)、listItem.SubItems.Add等,尤其在數(shù)據(jù)庫(kù)處理等操作或顯示信息時(shí),經(jīng)常會(huì)應(yīng)用到該控件顯示內(nèi)容
??????? 3.如何為控件添加右鍵菜單欄ContextMenuStrip,并設(shè)置其Item,為其添加相應(yīng)的響應(yīng)事件
??????? 最后,希望文章對(duì)大家有所幫助,如果文章中有錯(cuò)誤或不足之處,還請(qǐng)海涵.我這系列文章最后的運(yùn)行效果如下圖所示,高仿360同時(shí)能實(shí)現(xiàn)各種功能,具體參照博客每部分:
?
??????? 上面的打開(kāi)刪除文件源代碼地址:http://download.csdn.net/detail/eastmount/7414709
?
(By:Eastmount 2014-5-28 夜8點(diǎn) 原創(chuàng)CSDNhttp://blog.csdn.net/eastmount/)
?
總結(jié)
以上是生活随笔為你收集整理的C# 系统应用之ListView控件 (三).添加ContextMenuStrip右键菜单打开删除文件的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: C# 网络编程之豆瓣OAuth2.0认证
- 下一篇: C# 基础知识 (四).C#简介及托管代