日韩性视频-久久久蜜桃-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右键菜单打开删除文件的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 亚洲国产精品视频在线观看 | 理论片亚洲 | 欧美日韩中文在线 | 国产在线日韩 | 3d动漫啪啪精品一区二区中文字幕 | 国产午夜激情视频 | 亚洲a人 | 国产东北露脸精品视频 | mm131在线| 91九色蝌蚪在线 | 99嫩草| 国产免费av电影 | 李丽珍裸体午夜理伦片 | 天天躁狠狠躁 | 丰满少妇熟乱xxxxx视频 | 1515hh成人免费看 | 国产精品无码久久av | 麻豆国产精品一区 | 欧美综合久久 | 在线观看黄色av网站 | 成人看的毛片 | 天堂免费av | 日韩一区二区不卡视频 | 亚洲成人av电影网站 | 日韩免费观看一区二区三区 | 欧美三级理论片 | www.av88 | 古装做爰无遮挡三级视频 | 午夜在线观看影院 | 黄在线观看 | 欧洲做受高潮欧美裸体艺术 | 国产免费黄| 亚洲精品偷拍视频 | 黄色av免费在线看 | 成人爽a毛片一区二区免费 日本高清免费看 | 日本少妇一区 | 精品无码久久久久成人漫画 | 粗口调教gay2022.com | 超碰2023 | 欧美日韩在线观看免费 | 姐姐的朋友2在线 | 日批网站在线观看 | 影音先锋中文在线 | 欧美一区二区黄片 | 香蕉视频91 | yjizz国产 | 久久精品成人av | 日韩精品专区 | 在线观看亚洲精品视频 | 欧美高清一级 | 国产久精品 | 第一宅男av导航入口 | 欧美香蕉视频 | 欧美一区二区在线播放 | 99国产精品无码 | 亚洲黄色成人 | 大尺度做爰呻吟舌吻情头 | 欧美精品一区二区成人 | 欧美日本韩国一区二区 | 女同性恋一区二区三区 | 国产精品日韩无码 | 国产视频一二三区 | 欧美综合视频在线观看 | 美女视频一区二区三区 | a免费视频 | 国产精品一页 | 国产一区麻豆 | 一区二区三区四区视频在线观看 | 精品一区二区成人免费视频 | 不卡的中文字幕 | 久久成人福利视频 | 国产在线观看网站 | 亚洲中出 | 欧美三区在线观看 | av导航网站| 人人妻人人澡人人爽人人精品 | 亚洲黄色免费电影 | 超碰婷婷 | 国产va| 久久久久久久久99精品 | 亚洲精品1234| 婷婷色一区二区三区 | 日韩视频中文字幕 | 久久精品波多野结衣 | 四虎永久地址 | 日本国产在线观看 | 久久成人免费电影 | 成人做爰69片免费看 | 亚洲影院在线观看 | 国产98在线 | 91成人在线观看喷潮 | 成人免费视频国产免费 | 日韩网站在线观看 | 欧美中字 | 人人干人人艹 | 成人av动漫在线 | 欧美一区二区高清 | 99久久精品国产一区二区成人 | 撒尿free性hd |