tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトル複数のChartをクリップボードに連結コピー
記事No11290
投稿日: 2014/07/09(Wed) 14:02
投稿者くま
VB2010で、ひとつのFormの中に複数枚のChartがあります。
http://www.hanatyan.sakura.ne.jp/dotnet/chart18.htm
を使わせていただきコピーは出来るようになりましたが、この複数枚のChartを連結した状態で、
クリップボードにコピーをしたく、検索もしてみたのですが見当たりません。
ご教授のほどよろしくお願いいたします。

[ツリー表示へ]
タイトルRe: 複数のChartをクリップボードに連結コピー
記事No11291
投稿日: 2014/07/09(Wed) 17:37
投稿者魔界の仮面弁士
> この複数枚のChartを連結した状態で、
> クリップボードにコピーをしたく、

具体的なコードは省きますが、現状、ビットマップとして取得できているのであれば、
下記のような手順でコーディングしていけば、目的を果たせるかと思います。


(1) Bitmap 型の変数を用意し、「New Bitmap( 連結後の縦横サイズ )」を確保。

(2) Graphics.FromImge で、上記 1 に対する Graphics クラスを取得。

(3) Graphics の DrawImage メソッドで、「複数枚の Chart」の Bitmap を
 座標を変えながら、順次描画していく。これで連結完了。

(4) 描画完了後、最初に用意した 1 の Bitmap をクリップボードに転送。

(5) 最後に、不要なオブジェクト(Graphics、Bitmap 等)の破棄(Dispose)を行って完成。

[ツリー表示へ]
タイトルRe^2: 複数のChartをクリップボードに連結コピー
記事No11292
投稿日: 2014/07/09(Wed) 23:17
投稿者くま
早速有り難うございます。
何とか作ってはみましたが、正直言って分かってませんし連結も出来てません。
もし可能でしたらお教えの程お願いいたします。

        Using memStream As New System.IO.MemoryStream()
            Dim y = 0
            '
            Chart1.SaveImage(memStream, System.Drawing.Imaging.ImageFormat.Bmp)
            Dim bmp As New Bitmap(memStream, 500)
            Using cha = Graphics.FromImage(bmp)
                cha.DrawImage(bmp, 0, y)
            End Using
            '
            Chart2.SaveImage(memStream, System.Drawing.Imaging.ImageFormat.Bmp)
            Using cha = Graphics.FromImage(bmp)
                cha.DrawImage(bmp, 0, y + 200)
            End Using

            'ビットマップをクリップボードに貼り付け
            Clipboard.SetDataObject(bmp)
        End Using

[ツリー表示へ]