總之我的問題是如何落實「發送到」(右鍵單擊在Windows文件)C# - 動態添加和刪除的ContextMenuStrip項和「智能事件」
我有一個數據網格視圖也包含一個帶日誌文件名的列(我知道每個文件的路徑)
我想添加到我的彈出式菜單將選項複製到桌面和磁盤上的鑰匙(可移動)驅動程序。
我的彈出菜單可能是這樣的:
View log
Open file location
<---------------->
Copy to --> Desktop
(and Removable Drivers)
...
所以我想:
與「桌面」和所有的可移動驅動器添加列表「複製到」子下菜單(並刪除用戶彈出它們的可移動驅動程序)
正如我所說我想將文件複製到可移動驅動程序,所以如何添加「動態事件」 - 我的意思 - 如果用戶插入4 Disk On Key驅動程序我在「複製到」子菜單(比方說桌面和E:\,F:\,G:\,L :)下有新的4行,因此我需要每個可移動驅動程序的新點擊事件將文件複製到真正的動力......
關於問題1 - 我發現,檢測是否在電腦可移動驅動器插頭和我成功的removalble驅動程序添加到子菜單中的代碼。但我沒有成功從子菜單中刪除項目:
private void menu_PopUp_Opening(object sender, CancelEventArgs e)
{
// Need to remove all removable drivers first --> How to do ?
// to update the USB drivers when opening new pop up menu
DriveInfo[] ListDrives = DriveInfo.GetDrives();
foreach (DriveInfo Drive in ListDrives)
{
if (Drive.DriveType == DriveType.Removable)
{
// add to popup menu, from: http://stackoverflow.com/questions/5868446/how-to-add-sub-menu-items-in-contextmenustrip-using-c4-0
(menu_PopUp.Items[3] as ToolStripMenuItem).DropDownItems.Add(Drive.Name + " (" + Drive.VolumeLabel + ")");
}
}
}
謝謝任何幫助!
每個上下文菜單中打開你應該刪除下的所有項目時間複製到項目,然後重建列表。這樣的項目是最新的。命令:contextMenu.Items.Remove(item); – andrewb
謝謝,但我怎麼知道我有多少物品(在「複製到」子菜單中)? – AsfK
@AsfK你可能想要考慮'DriveInfo'來尋找'Removable drives'。 –