Создание массива графических путей в vb.net
Я не знаю, почему у меня возникают проблемы с этим, но я продолжаю получать исключение "не установлен для экземпляра объекта" каждый раз.
Имеет ли это смысл?
Я объявил это в основной форме
Private _Paths() As System.Drawing.Drawing2D.GraphicsPath
и сделать это в саб
_Paths(20) = New GraphicsPath
Но по какой-то причине я получаю ошибку ссылки на объект во второй строке. Любая помощь?
После объявления я хочу пойти дальше и добавить строку к графическому пути, например, так
_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
по-прежнему получаю сообщение об ошибке при попытке создать новый экземпляр graphicspath
Там не должно быть никаких причин, эта ошибка должна появиться правильно?
Private _Paths As NEW List(Of System.Drawing.Drawing2D.GraphicsPath)
2 ответа
Вы не изменяете размер своего массива, вместо этого используйте List(Of GraphicsPath)
и просто .Add
их, как вам нужно.
Dim myPaths As New List(Of GraphicsPath)
'later in code
myPaths.Add(New GraphicsPath)
myPaths(0).AddLine(...)'etc...
Список должен быть объявлен с 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})