剪贴板更改事件代码很复杂且无法正常工作

Clipboard change event code is complicated and isn't working

我想在内容更改时在文本框中显示剪贴板,我知道我需要使用来自 "user32.dll" 的导入,但我从未使用过这些类型的导入,它们有点令人困惑我。我检查了 this link and this link 以获得有关剪贴板更改事件的一些想法,所以这是我的问题: 1。即使我复制并粘贴了上面 link 中的代码,它们仍然不起作用: WndProc 的错误是:'object' does not contain a definition for 'WndProc'

2。我想了解更多关于 user32.dll 和 kernel32.dll 导入的信息,如果可能的话,请提供一些关于它们的信息,或者提供一些解释这些基础知识的资源。 谢谢

要在表单中监控剪贴板,您应该先创建表单,然后使用这些代码,例如:

public class Form1: Form
{
    public Form1()
    {
        InitializeComponent();
        this.Load += Form1_Load;
    }

    [DllImport("User32.dll", CharSet = CharSet.Auto)]
    public static extern IntPtr SetClipboardViewer(IntPtr hWndNewViewer);

    public const int WM_DRAWCLIPBOARD = 0x0308;

    private void Form1_Load(object sender, EventArgs e)
    {
        SetClipboardViewer(this.Handle);
    }

    protected override void WndProc(ref Message m)
    {
        base.WndProc(ref m);
        if (m.Msg != WM_DRAWCLIPBOARD)
            return;
        //Code To handle Clipboard change event
    }
}

别忘了加上using System.Runtime.InteropServices;