C#ListViewコントロールのデータが頻繁に更新されたときに、解決のちらつきの問題が発生します

C#ListViewコントロールは、使用時に、頻繁に更新されたデータの内部には、フリッカが発生した場合。

解決方法:ダブルバッファリング、ファーストクラスのリストビュー・リライトは、その後、その後、頻繁にクラスを継承した後で書き換えたデータを更新し、コントロールの定義は、フリッカーではありません初期化します。

// 对リストビュー进行继承重写:
パブリック クラスDoubleBufferListView:ListViewの
    { 
        公共DoubleBufferListView()
        { 
            するSetStyle(ControlStyles.DoubleBuffer | 
              ControlStyles.OptimizedDoubleBuffer | 
              ControlStyles.AllPaintingInWmPaint、真の); 
            UpdateStyles(); 
        } 
    }

以下は、使用の一例です。

//视图函数中定义一个リストビュー控件:
DoubleBufferListView doubleBufferListView1 = 新しいDoubleBufferListView(); この .doubleBufferListView1.Location = 新しい System.Drawing.Point(5037 )。
この .doubleBufferListView1.Name = " doubleBufferListView1 " この .doubleBufferListView1.Size = 新しい System.Drawing.Size(400191 )。この .doubleBufferListView1.Viewは= System.Windows.Forms.View.Detailsを。

//添加リストビュー到主视图
この .Controls.Add(この.doubleBufferListView1); //对控件进行列表头的添加 doubleBufferListView1.Clear(); doubleBufferListView1.Columns.Add(" アクション"80 、System.Windows.Forms.Horizo​​ntalAlignment.Left)。 doubleBufferListView1.Columns.Add(" "80 、System.Windows.Forms.Horizo​​ntalAlignment.Right)。 doubleBufferListView1.Columns.Add(" アクション"80 、System.Windows.Forms.Horizo​​ntalAlignment.Left)。 doubleBufferListView1.Columns.Add(" "80 、System.Windows.Forms.Horizo​​ntalAlignment.Left)。 //添加行数据 [] listViewData = 新しい 文字列 [ 4 ]。 listViewData [ 0 ] = " アクション" listViewData [ 1 ] = " 1 " listViewData [ 2 ] = " アクション" listViewData [ 3 ] = " 1 " ListViewItem LVITEM = 新規のListViewItem(listViewData、0 ); doubleBufferView1.Items.Add(LVITEM)。

 

おすすめ

転載: www.cnblogs.com/ming-4/p/12667936.html