一、第一步導入api 二、窗體初始化的時候,開啟剪切板切換 三、窗體關閉時,移除監聽 三、重寫窗體的WndProc方法處理監聽 運行結果: ...
一、第一步導入api
#region [DllImport("user32.dll")] public static extern bool AddClipboardFormatListener(IntPtr hwnd); [DllImport("user32.dll")] public static extern bool RemoveClipboardFormatListener(IntPtr hwnd); private static int WM_CLIPBOARDUPDATE = 0x031D; #endregion
二、窗體初始化的時候,開啟剪切板切換
public Form1() { InitializeComponent(); AddClipboardFormatListener(this.Handle); }
三、窗體關閉時,移除監聽
protected override void OnClosing(CancelEventArgs e) { RemoveClipboardFormatListener(this.Handle); base.OnClosing(e); }
三、重寫窗體的WndProc方法處理監聽
protected override void WndProc(ref Message m) { if (m.Msg == WM_CLIPBOARDUPDATE) { UpdateClipValueList(); } else { base.DefWndProc(ref m); } } private void UpdateClipValueList() { //顯示剪貼板中的文本信息 if (Clipboard.ContainsText()) { label1.Text = Clipboard.GetText(); } //顯示剪貼板中的圖片信息 if (Clipboard.ContainsImage()) { pictureBox1.Image = Clipboard.GetImage(); pictureBox1.Update(); } }
運行結果: