首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> C# >> 關於C#

C# 剪切板操作完全指南:文本讀寫與數據格式檢測

     編輯:關於C#

系統剪切板是應用程序間數據交換的核心通道。本文通過一個 WinForms 範例,演示如何將 TextBox 選中文本寫入剪切板,並從剪切板讀取文本顯示,核心涉及 Clipboard.SetDataObject、Clipboard.GetDataObject、IDataObject.GetDataPresent、IDataObject.GetData。

寫入剪切板

private void btnCopy_Click(object sender, EventArgs e)
{
    if (!string.IsNullOrEmpty(textBox1.SelectedText))
        Clipboard.SetDataObject(textBox1.SelectedText);
    else
        textBox2.Text = "未選中任何內容";
}

讀取剪切板

private void btnPaste_Click(object sender, EventArgs e)
{
    IDataObject data = Clipboard.GetDataObject();
    if (data.GetDataPresent(DataFormats.Text))
        textBox2.Text = (string)data.GetData(DataFormats.Text);
    else
        textBox2.Text = "剪切板無文本數據";
}

關鍵點解析

  1. DataFormats:預定義格式常量(Text, Bitmap, FileDrop, Html, Rtf 等),讀寫時需指定格式。
  2. IDataObject:剪切板數據的統一包裝接口,支持多格式同時存放。
  3. 類型轉換:GetData 返回 object,需強制轉換為目標類型(如 string、Image、string[] 文件路徑數組)。
  4. 異常處理:剪切板可能被其他進程佔用,建議包裹在 try-catch 中並重試。

擴展:非文本數據示例

// 寫入圖片
Clipboard.SetDataObject(pictureBox1.Image);
// 讀取圖片
if (data.GetDataPresent(DataFormats.Bitmap))
    pictureBox2.Image = (Image)data.GetData(DataFormats.Bitmap);

// 寫入文件列表
string[] files = { @"C:\a.txt", @"C:\b.doc" };
Clipboard.SetFileDropList(new StringCollection(files));
// 讀取文件列表
if (data.GetDataPresent(DataFormats.FileDrop))
    string[] paths = (string[])data.GetData(DataFormats.FileDrop);

完整源碼結構

標準 WinForms 程序:Main() 啟動 Form1,包含兩個 TextBox、兩個 Button、事件綁定、資源釋放。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved