在RichTextBox 中停用即時語法突出顯示的重繪
您需要在使用者鍵入時突出顯示RichTextBox 中的關鍵字和不良單詞,但由於不斷重新繪製而導致的過度閃爍是一個令人擔憂的問題。但是,重寫“WndProc”函數並攔截重繪訊息的標準方法需要子類化,這是不可行的。
幸運的是,您可以透過自行擴展 RichTextBox 類別的功能來解決此問題。操作方法如下:
建立自訂RichTextBox 類別:
using System; using System.Windows.Forms; using System.Runtime.InteropServices; class MyRichTextBox : RichTextBox { public void BeginUpdate() { SendMessage(this.Handle, WM_SETREDRAW, (IntPtr)0, IntPtr.Zero); } public void EndUpdate() { SendMessage(this.Handle, WM_SETREDRAW, (IntPtr)1, IntPtr.Zero); this.Invalidate(); } [DllImport("user32.dll")] private static extern IntPtr SendMessage(IntPtr hWnd, int msg, IntPtr wp, IntPtr lp); private const int WM_SETREDRAW = 0x0b; }
使用自訂控制項:
停用重繪:
myRichTextBox1.BeginUpdate();
啟用重畫:
myRichTextBox1.EndUpdate();完成文字和格式化後,呼叫“EndUpdate” 」方法:
以上是如何在 RichTextBox 中停用重畫以實現即時語法突出顯示?的詳細內容。更多資訊請關注PHP中文網其他相關文章!