0

我正在使用 ScintillaNet 的 Scintilla 控件并且我需要对粘贴操作进行一些控制(以便能够检查某些内容和/或更新要粘贴的文本)。

我试图创建 Scintilla 控件的子类并覆盖 WndProc 方法。然后,我截获了 WM_PASTE 消息(0x0302),没有运气。我从来没有抓住它。

这是我使用的代码:

受保护的覆盖无效 WndProc(参考消息 m)
{
    if (m.Msg == WM_PASTE)
    {
        MessageBox.Show("粘贴");
    }
    base.WndProc(参考 m);
}

任何的想法?

4

1 回答 1

4

您可以使用以下命令删除 ScintillaNET 的内置 CTRL+V 处理程序:

scintilla.Commands.RemoveBinding(Keys.V, Keys.Control, ScintillaNet.BindableCommand.Paste);

并添加您自己的 CTRL+V 处理程序(菜单项?)来执行以下操作:

ScintillaNet.Selection.Text = your_processed_clipboard_data;

这将插入当前光标位置,或替换当前选择。

于 2010-12-12T04:11:43.687 回答