我在用Mschart时,图形数据每隔1秒动态刷新一次,重绘的时候由闪动的情况出现,怎样解决?
在更新之前,我先关闭repaint,数据赋值后,再将其打开,有的闪,有的不闪,基本上是从上到下,闪2-3次吧。
多些各位。

解决方案 »

  1.   

    加個Timer控件,讓它每秒運行一次。如果數據不是很多,這樣做應該沒有問題,數據量大的話要間隔時間長一些
      

  2.   

    MSChart控件是用来将若干组数据以棒图、饼图、曲线图等图形方式显示出来的一种很方便、快捷的控件。但是每当数据刷新时,MSChart控件总会在屏幕上出现一种亮白色的闪烁现象,而且机器速度越慢,闪烁现象越明显。在这里提供一种用PictureBox控件解决闪烁问题的方法。 
     
    1、在有MSChart控件的窗体中另外加入一个PictureBox控件,如MSChart1和Picture1。 
    2、使Picture1和MSChart1大小一致,位置相同(通过左对齐和顶端对齐)。 
    3、使Picture1在MSChart1前端,设置Picture1的Visible为False,即不可见。只有刷新数据时Picture1才显示。 
    4、包括MSChart1第一次赋值和刷新数据两个过程。如下: 
     
    '初始化过程 
    Private Sub Form_load() 
    Dim V_char() 'n维数组 
    Dim I as Integer '计数变量 
    Dim V_series as Integer '标记几个系列的变量…… 
    MSChart1.ChartData = V_char '给MSChart1初始化赋值 
     
    For I = 1 To V_series 
    …… 
    '必须以此方式显示图例,否则Picture控件不能显示 
    MSChart1.DataGrid.ColumnLabel(I, 1) = 图例 
    Next I 
     
    MSChart1.Backdrop.Fill.Style = VtFillStyleBrush 
    '按需要设置MSChart1的背景色,否则Picture1会显示白色 
    MSChart1.Backdrop.Fill.Brush.FillColor.Set 192, 192, 192 
    End Sub 
     
    '刷新数据过程 
    Private Sub Refresh() 
    Dim V_newchar() 'n维数组 
    …… 
    Picture1.Visible = True 
    MSChart1.ChartData = V_newchar '给MSChart1重新赋值,即刷新数据 
     
    MSChart1.EditCopy '将当前图表的图片复制到剪贴板中 
    Picture1.Picture = Clipboard.GetData() '给Picture1赋值剪贴板中的图片 
    End Sub 
     
    这样每一次刷新数据时Picture1显示的图片都不会产生闪烁现象