2

なぜこれに問題があるのか​​ わかりませんが、毎回「オブジェクトのインスタンスに設定されていません」という例外が発生し続けます。

これは理にかなっていますか?

これをメインフォームで宣言しました

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

サブでこれを行います

 _Paths(20) = New GraphicsPath

しかし、何らかの理由で、2 行目にオブジェクト参照エラーが発生します。何か助けはありますか?

宣言の後、次のようにグラフィックパスに行を追加したいと思います

 _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 に答える