質問:
DataGridView をリアルタイムで更新します。特に更新レートが高く、セルの数が多い場合、ちらつきやフリーズなどの視覚的な不具合が発生しやすくなります。
分析:
ダブル バッファリング テクノロジは、オフスクリーン バッファを使用することでこれらの問題を解決します。
解決策:
リフレクションまたはサブクラス化を通じて DataGridView のダブル バッファリング機能を有効にします。
DataGridView のサブクラスを作成し、DoubleBuffered プロパティを公開します:
<code class="language-csharp">public class DBDataGridView : DataGridView { public new bool DoubleBuffered { get { return base.DoubleBuffered; } set { base.DoubleBuffered = value; } } public DBDataGridView() { DoubleBuffered = true; } }</code>
このクラスをプロジェクトに追加し、DoubleBuffering を true に設定します。
リフレクションを使用してプログラムで DoubleBuffering を設定します:
<code class="language-csharp">using System.Reflection; static void SetDoubleBuffer(Control ctl, bool DoubleBuffered) { typeof(Control).InvokeMember("DoubleBuffered", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.SetProperty, null, ctl, new object[] { DoubleBuffered }); }</code>
SetDoubleBuffer を呼び出して DataGridView の DoubleBuffering を切り替えます。
DoubleBuffering を有効にすることにより、DataGridView はオフスクリーン バッファーを使用して更新を描画し、頻繁な更新時のちらつきや途切れを軽減します。
以上がDataGridView を頻繁に更新するときにちらつきを防ぐにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。