タイトル : 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 |