元の質問をしたところ、BoltBait で WM_SETREDRAW を使用して SendMessage() を使用するのが最も適切な回答でした。WndProc メソッドを使用するよりも副作用が少ないようで、私のアプリケーションでは LockWindowUpdate の 2 倍の速度で実行されます。
拡張された RichTextBox クラス内に、これら 2 つのメソッドを追加したところです。何らかの処理を行っているときに再描画の再開を停止する必要があるときはいつでも、これらのメソッドを呼び出します。これを RichTextBox クラスの外から実行したい場合は、"this" を RichTextBox インスタンスへの参照に置き換えるだけでうまくいくと思います。
private void StopRepaint()
{
// Stop redrawing:
SendMessage(this.Handle, WM_SETREDRAW, 0, IntPtr.Zero);
// Stop sending of events:
eventMask = SendMessage(this.Handle, EM_GETEVENTMASK, 0, IntPtr.Zero);
}
private void StartRepaint()
{
// turn on events
SendMessage(this.Handle, EM_SETEVENTMASK, 0, eventMask);
// turn on redrawing
SendMessage(this.Handle, WM_SETREDRAW, 1, IntPtr.Zero);
// this forces a repaint, which for some reason is necessary in some cases.
this.Invalidate();
}