2013-05-02 8 views
1

왜 이런 문제가 발생하는지 알 수 없지만 매번 '객체의 인스턴스로 설정되지 않음'이 계속 발생합니다.vb.net에서 그래픽 경로 배열 만들기

의미가 있습니까?

나는이 기본 폼

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

에 선언 나는 두 번째 줄에 개체 참조 오류가 어떤 이유에서 하위

_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 

은 그래픽 경로의 새 인스턴스를 만들 때 여전히 오류가 발생합니다.

이 오류가 올바르게 표시 될 이유가 없어야합니까? enter image description here

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

답변

2

은 배열을 redimensioning 대신 사용하지를 A List(Of GraphicsPath) 그냥 .Add을 당신이 필요로.

Dim myPaths As New List(Of GraphicsPath) 
'later in code 
myPaths.Add(New GraphicsPath) 
myPaths(0).AddLine(...)'etc... 
+0

죄송합니다 어떻게 목록을 사용할지 모르겠습니다. 현재 그래픽 경로를 선언 한 후 나는 이 1) 는 어떻게하는 것이 (K) .AddLine (x_loc (K), y_loc (K), x_loc (K + 1), y_loc (K를 추가 + _Paths 할 목록? –

+0

필요할 때마다 새 GraphicsPath를 추가 한 다음 위와 같은 색인을 사용하여 액세스 할 수 있습니다. 그럴 때 알아 내면됩니다. – OneFineDay

+0

감사합니다. 많이 사용 된 목록은 없습니다. 행을 제외하고 인스턴스로 설정되지 않았습니다. _Paths.Add (새 그래픽 경로) –

1

목록은 당신이 실제로 새 GraphicsPath를 추가하지 않는 스크린 샷에서 알

Dim YourList As New List(Of 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})