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

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

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

Re[6]: pictureBoxにRectangleで正方形を描画する方


(過去ログ 49 を表示中)

[トピック内 7 記事 (1 - 7 表示)]  << 0 >>

■26539 / inTopicNo.1)  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のサイズ変更を止めると思ったように描画されています。

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


引用返信 編集キー/
■26540 / inTopicNo.2)  Re[1]: pictureBoxにRectangleで正方形を描画する方
□投稿者/ やじゅ (694回)-(2008/10/14(Tue) 00:21:49)
やじゅ さんの Web サイト
No26539 (tom さん) に返信
> 変更したサイズに見合った?サイズにpictureBoxが大きくなり、スクロールバーが現れるのですが
> 沢山の正方形が一瞬描画されて消えてしまいます。
>

どこのイベントで動作させているのでしょうか?
スクロールバーがあらわれた時点で、再描画されてしまうので消えますね。
Paintメソッドで描けば描画されますが、いまのままだと、それでは処理が
重くなるけどね。
引用返信 編集キー/
■26541 / inTopicNo.3)  Re[2]: pictureBoxにRectangleで正方形を描画する方
□投稿者/ tom (14回)-(2008/10/14(Tue) 00:31:09)
やじゅさん、有難う御座います。

現状はボタンクリックイベントでプログラムを実行しています。

最終的な仕様と致しましては

@ 起動時にPictureBox内に正方形が描画されている。
  Form1のコンストラクタ内のInitializeComponent後に呼び出しても駄目でしたが・・・。

A OKボタンを押した瞬間に処理をして
  上記のプログラムでPictureBoxを更新。

なのですが・・・。


引用返信 編集キー/
■26542 / inTopicNo.4)  Re[3]: pictureBoxにRectangleで正方形を描画する方
□投稿者/ tom (15回)-(2008/10/14(Tue) 00:32:20)
確かに描画が見えるほど遅いですが
適切な方法など御座いますでしょうか?

引用返信 編集キー/
■26544 / inTopicNo.5)  Re[4]: pictureBoxにRectangleで正方形を描画する方
□投稿者/ やじゅ (695回)-(2008/10/14(Tue) 01:30:42)
やじゅ さんの Web サイト
No26542 (tom さん) に返信
> 確かに描画が見えるほど遅いですが
> 適切な方法など御座いますでしょうか?
>

「PictureBoxコントロールにグラフィックを描画するには?」
Imageプロパティで指定したビットマップに描画
http://www.atmarkit.co.jp/fdotnet/dotnettips/458picboxdraw/picboxdraw.html
引用返信 編集キー/
■26626 / inTopicNo.6)  Re[5]: pictureBoxにRectangleで正方形を描画する方
□投稿者/ tom (16回)-(2008/10/16(Thu) 01:35:05)
やじゅさん、有難う御座いました。
BMPで解決しました。


引用返信 編集キー/
■26627 / inTopicNo.7)  Re[6]: pictureBoxにRectangleで正方形を描画する方
□投稿者/ tom (17回)-(2008/10/16(Thu) 01:35:24)
 
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -