2013-05-02 72 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你的陣列,而不是使用List(Of GraphicsPath),只是.Add他們爲你所需要的。

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

對不起,我不知道我將如何使用該列表。眼下宣佈圖形路徑後,我做 _Paths(K).AddLine(x_loc(K),y_loc(K),x_loc(K + 1),y_loc(K + 1) 如何將添加,要一個列表? – 2013-05-02 14:15:29

+0

你可以隨時添加一個新的GraphicsPath,然後你仍然可以像上面那樣通過索引來訪問它們,你只需要弄清楚什麼時候會發生這種情況 – OneFineDay 2013-05-02 14:21:50

+0

謝謝,我還沒有使用很多的列表。一個沒有設置爲實例,除了在線 _Paths.Add(新的GraphicsPath) – 2013-05-02 14:27:48

1

名單必須用新聲明

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})