C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


■88595 / )  Re[10]: コントロールを自然に動かすには??
□投稿者/ 熊さん (6回)-(2018/09/09(Sun) 19:47:15)


ありがとうございます。

ただ、【Invalidate】のことがやはりよく理解できませんでした。

Invalidateとは更新予約するもので
Refleshは即時に更新するものであることは分かります。

例えば、上でご呈示くださったコードでは

PictureBox1.Bounds = New Rectangle(PictureBox1.Left, y, PictureBox1.Width, h)

'リサイズされたので再描画を依頼
PictureBox1.Invalidate()

リサイズの後に使用しているのはなぜでしょうか?

また、他のサンプルプログラムを見ていても、後に出てくるのがほとんどだと思います。
http://wisdom.sakura.ne.jp/system/msnet/msnet_win21.html
https://devlights.hatenablog.com/entry/20080509/p1


Boundsの後にもInvalidateを入れてみたりして、
うまく描画されず、Boundsの前である必要があることは分かるのですが
なぜ「今回だけ」前に入れるのかが分かりません。

前に入れる場合と後ろに入れる場合の使い分けについて教えていただけないでしょうか?


例えば、画像を表示したい場合、

With PBox

.Image = img
.Invalidate()

End With

Invalidateを
.Image = img

の前に入れても後に入れても、同じように動作しますが
どちらに入れるのが正しいのでしょうか?







返信 編集キー/


管理者用

- Child Tree -