【问题标题】:How to override PASTE operations in ScintillaNet?如何覆盖 ScintillaNet 中的粘贴操作?
【发布时间】:2011-04-13 04:46:52
【问题描述】:

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

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

这是我使用的代码:

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

有什么想法吗?

【问题讨论】:

    标签: c# .net overriding paste scintilla


    【解决方案1】:

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

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

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

    ScintillaNet.Selection.Text = your_processed_clipboard_data;

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

    【讨论】:

    • 谢谢,它在 Ctrl+V && Ctrl+Insert 上就像一个魅力。但是,我找不到如何控制右键单击上下文菜单中的粘贴条目。
    猜你喜欢
    • 1970-01-01
    • 2019-09-15
    • 2011-01-19
    • 1970-01-01
    • 1970-01-01
    • 2010-09-22
    • 2011-12-12
    • 1970-01-01
    相关资源
    最近更新 更多