2017-01-12 17 views
0

DataGridView(行と列)に多くの結果が表示されています。上下左右にスクロールすると、datagridviewがリフレッシュされ、その都度セルが表示されます。これは爽快で、特にあなたがDataGridViewControl_CellFormattingイベントで何らかの操作をしているときに迷惑です。 dataGridViewでスクロールしているときに、どうやってリフレッシュを止めることができますか?私はC#でのWinFormsを使用してい スクロール時にDataGridviewを更新しないでください

+0

私はこれをテストするために2000項目でdatagridviewを埋めましたが、問題の再現に問題があります。リフレッシュすると、そのちらつきを意味しますか?あなたはダビングバッファリングを試みましたか?私はそれを含む答えを掲示しました。 – EpicKip

+0

はい、そうです。 DataGridViewにスクロールするたびにグリッドがちらつきます –

答えて

2
public static void DoubleBuffered(this DataGridView dgv, bool setting) 
{ 
    Type dgvType = dgv.GetType(); 
    PropertyInfo pi = dgvType.GetProperty("DoubleBuffered", 
     BindingFlags.Instance | BindingFlags.NonPublic); 
    pi.SetValue(dgv, setting, null); 
} 

これは、データグリッドビューにdoublebuffered有効にすることです。私はこれを持っていますSO

+0

良い発見ですが、私はcodyに同意します。_投稿したメソッドは、リフレクションを使ってDataGridViewコントロールの非公開のプロパティを変更します。これは受け入れられる解決策ですが、既存のDataGridViewコントロールを継承し、 "DoubleBuffered"スタイルセットを使用して独自のカスタムコントロールを作成するだけで、おそらくよりクリーンです。 – TaW

関連する問題