|
分類:[C#]
C#のwindowsアプリケーションにて
pictureBoxにRectangleで沢山の正方形を表示したいと考えています。
そこで、
@ 画像を表示する部分にPanelコントロールを配置。
A Panelコントロールの中にPictureBoxコントロールを配置。
B PictureBoxコントロールのLocationプロパティを「(0, 0)」に設定。
C PictureBoxコントロールのSizeModeプロパティを「AutoSize」に設定。
D PanelコントロールのAutoScrollプロパティを「True」に設定する
のようにしてプログラムからpictureBoxのサイズを変更して
沢山表示される場合にはスクロールバーが出るようにしているのですが
以下のように
{
// 取り合えず適当なサイズ
pictureBox1.Width = 1024;
pictureBox1.Height= 1024;
Graphics graphics = pictureBox1.CreateGraphics();
HatchBrush cross_brush = new HatchBrush( HatchStyle.Cross, Color.White, Color.Black );
for( Int32 i=0, y=0; i<256; ++i ) // 取り合えず適当に・・・
{
for( Int32 j=0, x=0; j<PIXCEL_REPEAT_W; ++j )
{
graphics.FillRectangle( cross_brush, x, y, PIXCEL_W, PIXCEL_H );
x += PIXCEL_W;
}
y += PIXCEL_H;
}
graphics.Dispose();
cross_brush.Dispose();
}
とすると、
変更したサイズに見合った?サイズにpictureBoxが大きくなり、スクロールバーが現れるのですが
沢山の正方形が一瞬描画されて消えてしまいます。
また、以下のように
//pictureBox1.Width = 1024;
//pictureBox1.Height= 1024;
とpictureBoxのサイズ変更を止めると思ったように描画されています。
何か根本的に間違えているのでしょうか?
|