DOBON.NET DOBON.NETプログラミング掲示板過去ログ

自作コントロールをBMP出力

環境/言語:[Win32(.NET Framework1.1)、VB.NET2003]
分類:[.NET]

こんにちは、どらごらです。

積立チャートを表示する自作コントロールの表示を、BMP出力させたいのですが
どのようにしたらよろしいでしょうか?

現在は、以下のようになっています。

コントロール名:ChatControl
クラス名:Chat.TChatControl
クラス内コントロール:PictureBox(picMain)、ListBox(lstColumn)
内容:ListBoxにチャートに必要な、凡例(?)をDrawItemイベント(OwnerDraw)で
   表示しています。
   picMainのPaintイベントで、チャートを表示しています。

やりたいこと:ChatControlクラスに、SaveBMPメソッドを作成しファイル出力
       させたいと思っています。
       SaveBMPメソッドはFileName引数があり、FullPathで指定
       戻り値は出力できたかどうかのBoolen値

※ハードコピーを取得し、作成途中のチャートをZIPで圧縮したのをアップします。(BMP=>Zip圧縮)
(この記事にはファイル"ChatV1.zip"が添付されていましたが、削除されました。)
通常はハードコピーで考えるよりも、
内部でBitmapを作成しておき、これをコントロールの描画&表示に使用します。
SaveBMPメソッドの実行はこのBitmapのSaveメソッドでOKですし。
■No3287に返信(Sugi@ぱぱんぶぃびぃさんの記事)
> 通常はハードコピーで考えるよりも、
> 内部でBitmapを作成しておき、これをコントロールの描画&表示に使用します。
> SaveBMPメソッドの実行はこのBitmapのSaveメソッドでOKですし。

 アドバイス通り、作成してみました。
 確かにこれなら、問題なさそうです。ありがとうございました。
#テスト的に作ったので、例外処理が入ってませんが。。。

    Private Sub picMain_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles picMain.Paint
        '変数
        '//(略)
        Dim tmpBMP As New Bitmap(picMain.Width, picMain.Height)

        '初期化
        '//(略)
        g = Graphics.FromImage(tmpBMP)

        '*****描画*****
        '//(略)

        e.Graphics.DrawImage(tmpBMP, 0, 0)
    End Sub
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板