2

我不知道为什么我会遇到这个问题,但我每次都会遇到“未设置为对象的实例”异常。

这有意义吗?

我在主表单中声明了这个

Private _Paths() As System.Drawing.Drawing2D.GraphicsPath

并在 sub 中执行此操作

 _Paths(20) = New GraphicsPath

但无论出于何种原因,我在第二行得到一个对象引用错误。有什么帮助吗?

在 decleration 之后,我想继续在图形路径中添加一条线,如下所示

 _Paths(k).AddLine(x_loc(k), y_loc(k), x_loc(k + 1), y_loc(k + 1))

根据使用列表的建议:

在主类中声明

Private _Paths As List(Of System.Drawing.Drawing2D.GraphicsPath)

在子中使用

for k = 0 to 10
      'x_loc and y_loc calculations are done here

    _Paths.Add(New GraphicsPath)
    _Paths(k).AddLine(x_loc(k), y_loc(k), x_loc(k + 1), y_loc(k + 1))
next

尝试创建新的图形路径实例时仍然出错

应该没有理由弹出此错误,对吗? 在此处输入图像描述

Private _Paths As NEW List(Of System.Drawing.Drawing2D.GraphicsPath)
4

2 回答 2

2

您没有重新调整阵列的尺寸,而是根据需要使用 aList(Of GraphicsPath).Add它们。

Dim myPaths As New List(Of GraphicsPath)
'later in code
myPaths.Add(New GraphicsPath)
myPaths(0).AddLine(...)'etc...
于 2013-05-02T14:09:26.143 回答
1

列表必须用 New 声明

Dim YourList As New List(Of GraphicsPath)

我注意到在您的屏幕截图中您实际上并没有添加新的 GraphicsPath 对象您没有提供参数来创建一个

Dim Rec As New Rectangle(LocationX,LocationY, Width,Height) 'Create a binding rectangle to contain the graphic
Yourlist.Add(New GraphicsPath {Rec}) 'In place of 'Rec' you can also specify parameters directly

或者

Yourlist.Add(New GraphicsPath {LocationX,LocationY, Width,Height})
于 2014-11-25T04:24:44.017 回答