簡體   English   中英

在 C# 中將文件復制到剪貼板

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM