[英]Copy files to clipboard in C#
我有一個Windows 窗體TreeView (節點、子節點)。 每個節點在其標簽中包含一些附加信息。 此外,每個節點都映射磁盤上的一個文件。 在 C# 中復制/剪切/粘貼節點/文件的最簡單方法是什么?
有一些示例代碼會很好。
考慮使用Clipboard 類。 它具有將數據放入 Windows 剪貼板和從 Windows 剪貼板檢索數據所需的所有方法。
StringCollection paths = new StringCollection();
paths.Add("f:\\temp\\test.txt");
paths.Add("f:\\temp\\test2.txt");
Clipboard.SetFileDropList(paths);
上面的代碼會將文件 test.txt 和 test2.txt 放在 Windows 剪貼板上進行復制。 執行代碼后,您可以導航到任何文件夾並粘貼( Ctrl + V )文件。 這相當於在 Windows 資源管理器中選擇兩個文件並選擇復制 ( Ctrl + C )。
如果您只是在應用程序中復制和粘貼,則可以將樹視圖的剪切/復制操作映射到僅克隆所選節點的方法。 IE:
TreeNode selectedNode;
TreeNode copiedNode;
selectedNode = yourTreeview.SelectedNode;
if (selectedNode != null)
{
copiedNode = selectedNode.Clone;
}
// Then you can do whatever you like with copiedNode elsewhere in your app.
如果您希望能夠粘貼到其他應用程序,則必須使用剪貼板。 通過了解有關IDataObject接口的更多信息,您可以獲得比純文本更有趣的東西。 我不記得出處了,但這是我自己筆記中的一些內容:
在類中實現時,IDataObject 方法允許用戶在類的實例中以多種格式存儲數據。 以多種格式存儲數據會增加目標應用程序(您可能不知道其格式要求)檢索存儲數據的機會。 要將數據存儲在 IDataObject 的實例中,請調用 SetData 方法並在 format 參數中指定數據格式。 如果您不希望在檢索時將存儲的數據轉換為另一種格式,請將 autoConvert 參數設置為 false。 在 IDataObject 的一個實例上多次調用 SetData 以以一種以上的格式存儲數據。
一旦您填充了一個實現IDataObject的對象(例如稱為yourTreeNodeDataObject的對象),您就可以調用:
Clipboard.SetDataObjecT(yourTreeNodeDataObject);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.