プロが教えるわが家の防犯対策術!

グラフィックDrawLineメソッドについて教えてください。
下記のコードでは、開いた線になります。OK
mypoints(0)=New Point(10,10)
,mypoints(1)=New Point(40,70)
mypoints(2)=New Point(60,30)
mypoints(3)=New Point(90,90)
Dim g As Graphics = PictureBox3.CreateGraphics()
g.DrawLines(New Pen(Color.Blue, 1), mypoints)

ところが、下記のコードで、グラフが最後閉じられてしまいます。NG どうしてでしょうか?
For i = 0 To 48
mypoints(i) = New Point((i * 0.35), (PdaOneData(N_OneDtNo).PicData(i) * 0.05))
Debug.WriteLine(mypoints(i))
Next
Dim g As Graphics = PictureBox3.CreateGraphics()
g.DrawLines(New Pen(Color.Blue, 1), mypoints)

上記のmypoints(i) のイミディエイトウィンドウ表示は下記のとおりです。
X=0,Y=40}{X=0,Y=40}{X=1,Y=39}{X=1,Y=39}{X=1,Y=39}{X=2,Y=38}{X=2,Y=38}{X=2,Y=37}{X=3,Y=37}
  ・・・中省略・・・
{X=14,Y=43}{X=14,Y=43}{X=15,Y=43}{X=15,Y=43}{X=15,Y=44}{X=16,Y=44}{X=16,Y=43}{X=16,Y=42}

A 回答 (2件)

最後が閉じられると書いておられますが、ひょっとして 0,0 の位置に表示していませんか?



mypoints 変数の宣言をどこでいくつ宣言していますか? 48 より多いとかないですか?
    • good
    • 0
この回答へのお礼

ありがとうございました。
配列は配列数で宣言するものという昔のC言語からの先入観でコードを作成していました。
それでおっしゃられるように、(0,0)の配列が最後に1個存在していました。
VBの配列宣言は最大値ということがわかり解決しました。

お礼日時:2012/02/03 04:44

VB のバージョン等を含め肝心な事を書かないで質問されても期待される答えは得られないかと


思いますよ。
PdaOneData(N_OneDtNo).PicData(i) の中身がどうなっているか解らないので確認のしようが
ありませんし。

 ・・・中省略・・・ では、詳細が解らないし。

ご自分でどこまで確認したかも不明だし。
どこで閉じているのかも書いていないし。

For i = 0 To 48 のところを 48 → 24 にした場合はどうなるかとか?
それでも閉じるなら、1 → 順に試してどこで閉じるとか試して見たら問題が少しは見えてくるのでは
ないですか?

コードを掲載されるのなら他人が確認できるような最低限のコードを作って投稿されると解決も
早いかと思います。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!