Vb.net 在vb2010中将大量数据打印到可滚动的绘图中

Vb.net 在vb2010中将大量数据打印到可滚动的绘图中,vb.net,graphics,picturebox,scrollable,Vb.net,Graphics,Picturebox,Scrollable,我有一个包含250000条9位二进制数据记录的数据(csv)文件。我需要以允许用户滚动绘图的方式进行绘图。我尝试了一个图片框加上一个滚动条,滚动条控制PictureBox的Top属性。发生的情况是,当打印的数据被滚动到看不见的地方时,它会从PictureBox中被删除 下面是一段VB2010代码,它绘制了一个位,显示了我所有的图形内容。我省略了手动生成数据点的测试代码 Public Class Form1 Const myPixelHeight = 10 Const myPixelWidth =

我有一个包含250000条9位二进制数据记录的数据(csv)文件。我需要以允许用户滚动绘图的方式进行绘图。我尝试了一个图片框加上一个滚动条,滚动条控制PictureBox的Top属性。发生的情况是,当打印的数据被滚动到看不见的地方时,它会从PictureBox中被删除

下面是一段VB2010代码,它绘制了一个位,显示了我所有的图形内容。我省略了手动生成数据点的测试代码

Public Class Form1
Const myPixelHeight = 10
Const myPixelWidth = 10
Dim myGraphics As Graphics
Dim myPen As Pen
Dim TotalImageHeight As Integer
Dim Rec As Integer

Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    TotalImageHeight = PictureBox1.Height
    myGraphics = PictureBox1.CreateGraphics
    PictureBox1.Image = New Bitmap(500, 10000)
    myPen = New Pen(Brushes.DarkMagenta, myPixelHeight)
End Sub


Private Sub DrawOneBit(Record As Integer, Sensor As Integer)
    Dim HDistance As Integer, VDistance As Integer
    VDistance = Record * myPixelHeight
    HDistance = Sensor * myPixelWidth * 1.1
    myGraphics.DrawLine(myPen, HDistance, VDistance, HDistance + myPixelWidth, VDistance)
End Sub

这是我第二次尝试问这个问题。第一次因为太模糊而被“搁置”?复杂?不精确的我编辑了它,但它仍保留在比特桶中。

是否绝对有必要使用您自己的图形生成器?你为什么不使用mschart来描绘你的观点呢?谢谢@xavier。不使用MSChart的一个原因是,我搜索了又搜索,找到了ocx版本的引用。天。没有简单的方法来区分与VB2010相关的项目。无论如何,我用另一种方法解决了这个问题。我没有试图滚动一个巨大的PictureBox,而是简单地使用一个小的p.b.并在滚动条值改变时从一个巨大的数组中重新绘制数据。更新有点慢,但足够了。