首页 文章

如何在ScintillaNet中覆盖PASTE操作?

提问于
浏览
0

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

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

这是我使用的代码:

protected override void WndProc(ref Message m)
{
    if (m.Msg == WM_PASTE)
    {
        MessageBox.Show("Paste");
    }
    base.WndProc(ref m);
}

任何的想法?

1 回答

  • 4

    您可以删除ScintillaNET内置的CTRL V处理程序:

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

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

    ScintillaNet.Selection.Text = your_processed_clipboard_data;
    

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

相关问题