在绘制RichTextBox之前修改它的内容

时间:2016-04-12 15:54:29

标签: .net winforms richtextbox

如何修改RichTextBox上绘制的数据?我已经尝试覆盖Text属性,但它无法正常工作。

拦截WM_GETTEXT然后修改Text属性确实有效,但我丢失了所有格式信息:

    protected override void WndProc(ref System.Windows.Forms.Message m)
    {
        base.WndProc(ref m);
        if (m.Msg == WM_GETTEXT)
        {
            var currentText = Marshal.PtrToStringAuto(m.LParam);

            // Modify the text
            currentText = currentText?.Replace("a", "b");
            this.Text = currentText;
        }
    }

基本上我希望能够在绘制控件之前拦截RTF内容,然后用其他东西替换该RTF。我尝试拦截EM_STREAMOUT,但在内容发生变化时似乎无法调用。

0 个答案:

没有答案