C#ListViewコントロールは、使用時に、頻繁に更新されたデータの内部には、フリッカが発生した場合。
解決方法:ダブルバッファリング、ファーストクラスのリストビュー・リライトは、その後、その後、頻繁にクラスを継承した後で書き換えたデータを更新し、コントロールの定義は、フリッカーではありません初期化します。
// 对リストビュー进行继承重写: パブリック クラスDoubleBufferListView:ListViewの { 公共DoubleBufferListView() { するSetStyle(ControlStyles.DoubleBuffer | ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint、真の); UpdateStyles(); } }
以下は、使用の一例です。
//视图函数中定义一个リストビュー控件: DoubleBufferListView doubleBufferListView1 = 新しいDoubleBufferListView(); この .doubleBufferListView1.Location = 新しい System.Drawing.Point(50、37 )。 この .doubleBufferListView1.Name = " doubleBufferListView1 " 。 この .doubleBufferListView1.Size = 新しい System.Drawing.Size(400、191 )。この .doubleBufferListView1.Viewは= System.Windows.Forms.View.Detailsを。
//添加リストビュー到主视图 この .Controls.Add(この.doubleBufferListView1); //对控件进行列表头的添加 doubleBufferListView1.Clear(); doubleBufferListView1.Columns.Add(" アクション"、80 、System.Windows.Forms.HorizontalAlignment.Left)。 doubleBufferListView1.Columns.Add(" 値"、80 、System.Windows.Forms.HorizontalAlignment.Right)。 doubleBufferListView1.Columns.Add(" アクション"、80 、System.Windows.Forms.HorizontalAlignment.Left)。 doubleBufferListView1.Columns.Add(" 値"、80 、System.Windows.Forms.HorizontalAlignment.Left)。 //添加行数据 列 [] listViewData = 新しい 文字列 [ 4 ]。 listViewData [ 0 ] = " アクション" 。 listViewData [ 1 ] = " 1 " 。 listViewData [ 2 ] = " アクション" 。 listViewData [ 3 ] = " 1 " 。 ListViewItem LVITEM = 新規のListViewItem(listViewData、0 ); doubleBufferView1.Items.Add(LVITEM)。