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

わんくま同盟

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

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


(過去ログ 49 を表示中)
■26539 / )  pictureBoxにRectangleで正方形を描画する方
□投稿者/ tom (13回)-(2008/10/13(Mon) 23:47:15)

分類:[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のサイズ変更を止めると思ったように描画されています。

何か根本的に間違えているのでしょうか?


返信 編集キー/


管理者用

- Child Tree -