Vb中如何消除MSchart的閃爍現象
發表于:2007-07-14來源:作者:點擊數:
標簽:
MSChart控件是用來將若干組數據以棒圖、餅圖、曲線圖等圖形方式顯示出來的一種很方便、快捷的控件。但是每當數據刷新時,MSChart控件總會在屏幕上出現一種亮白色的閃爍現象,而且機器速度越慢,閃爍現象越明顯。在這里提供一種用PictureBox控件解決閃爍問題
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顯示的圖片都不會產生閃爍現象
原文轉自:http://www.anti-gravitydesign.com