■14348 / ) |
Re[7]: パネル内の座標値、そして座標値の範囲を設定する |
□投稿者/ Tetsu (9回)-(2008/02/15(Fri) 17:57:13)
|
やじゅさん
度々ご返答ありがとうございます。感謝しています。
> 再描画をする必要があります。
>
> 一案ですが、
> 折れ線グラフを、Bitmapイメージで作成しpictureBoxコントロールにてそのBitmapイメージを表示させるようにすれば、
> スクロールさせても自動的に描画されます。
>
> ようは折れ線グラフを一度画像にするってことです。
ということは、画像にしていないと再描画されないということでしょうか。
その後の作業の関係上、なるべくBitmapにはしたくないと思っているのです。
他に何も方法がない、という時はBitmapにするかもしれませんが。
現在取り組んでいるのは、グラフではなく、GPSで取得した位置データを描画しようとしているのです。
Update()やInvalidate()などを使ってみましたが、どうもうまくいきません。
Application.DoEvents();をforループの前につけたところ、アプリケーション起動時には折れ線は描くことができました。
しかし、画面をスクロールすると、やはり描画されていた折れ線は消えてしまいます。
画面をスクロールした時に再描画をさせるしかけを作らねばならない、ということになるでしょうか。
画面をスクロールした時に再描画する方法、というのは存在するのでしょうか。
私なりに調べてみましたが、みつかりませんでした。
ご存知でしたら教えていただけないでしょうか。
//折れ線の位置をずらして3本の折れ線を描画
for (int i = 0; i < 3; i++)
{
Application.DoEvents();
//点を配列に格納
myPoints[0] = new PointF(xOne, yOne);
myPoints[1] = new PointF(xTwo, yTwo);
myPoints[2] = new PointF(xThree, yThree);
//折れ線を矢印にする
pen.EndCap = LineCap.ArrowAnchor;
//折れ線を描く
e.Graphics.DrawLines(pen, myPoints);
//折れ線の位置を変える
xOne += 300f;
yOne += 300f;
xTwo += 300f;
yTwo += 300f;
xThree += 300f;
yThree += 300f;
//折れ線の色を変える
cRed += 20;
cGreen += 40;
cBlue += 20;
}
|
|