tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル ChartとPictureBoxを一緒にクリップボードにコピー
投稿日: 2012/12/07(Fri) 16:58
投稿者そら
No.10972とNo.10983に関連する質問で教えてください。

教えていただきサンプルも使わせていただいて、Chart内にPictureBoxをつくり、そこに文字を描画して、
そのままそっくりクリップボードにコピーをしようとしたのですが、このままではどちらか一方しかコピーがされません。
どうすれば良いのでしょう、教えてください。


    Private Sub Form1_Load(ByVal sender As System.Object, _
                           ByVal e As System.EventArgs) Handles MyBase.Load
        Dim dt As New DataTable
        '列の作成
        With dt.Columns
            .Add("日付", GetType(String))
            .Add("指数", GetType(Integer))
        End With
        'データの追加
        dt.Rows.Add("12/01", 40)
        dt.Rows.Add("12/02", 60)
        dt.Rows.Add("12/03", 30)
        '初期化    
        Chart1.Series.Clear()
        'グラフの種類,系列,軸の設定
        Dim rosoku = Chart1.Series.Add("棒グラフ")
        With rosoku
            .ChartType = DataVisualization.Charting.SeriesChartType.Column
            .XValueMember = "日付"
            .YValueMembers = "指数"
        End With
        Chart1.DataSource = dt
        Chart1.DataBind()
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, _
                              ByVal e As System.EventArgs) Handles Button1.Click

        '描画
        Dim g As Graphics
        With PictureBox1
            .Image = New Bitmap(100, 100)
            g = Graphics.FromImage(.Image)
        End With
        Dim f As New Font("MS Pゴシック", 11)
        g.DrawString("ABCDEFG", f, Brushes.Blue, 0, 0)
        f.Dispose()
        g.Dispose()

        'Chartをクリップボードにコピー
        Using memStream As New System.IO.MemoryStream()
            '一旦 Stream オブジェクトに保存
            Chart1.SaveImage(memStream, System.Drawing.Imaging.ImageFormat.Bmp)
            Dim bmp As New Bitmap(memStream)
            'ビットマップをクリップボードに貼り付け
            Clipboard.SetDataObject(bmp)
        End Using

        'PictureBoxをクリップボードにコピー
        If Not PictureBox1.Image Is Nothing Then
            'データをシステム クリップボードに貼り付け
            Clipboard.SetDataObject(PictureBox1.Image, True)
        End If
    End Sub

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。