タイトル | : Re^4: どなたか… |
記事No | : 10992 |
投稿日 | : 2012/12/13(Thu) 23:02 |
投稿者 | : VBレスキュー(花ちゃん) |
最初の時にリンク先の説明でやり方を書いていたはずですが。 それと文字等の描画方法等は、基本的な事ですからここのサンプルやネット上のサンプルを 試して自分の物にしないと今後も他人にコードを書いてもらう事になりますよ。
PictureBox1 と Chart1 は同じサイズにして下記コードを試して見て下さい。 (動作確認用なのでコードは簡略にしていますので、理屈が呑み込めたら目的に合わせて 書き直して下さい)
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click 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() '------------------------------- ここまでは貴方のコードを使用 ------------------------------ Chart1.Visible = False
'グラフをBitmapとして取得してPictureBox1上に表示 Dim bmp As New Bitmap(Chart1.Width, Chart1.Height) Chart1.DrawToBitmap(bmp, New Rectangle(0, 0, Chart1.Width, Chart1.Height)) With PictureBox1 .SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage .Image = bmp End With Using g As Graphics = Graphics.FromImage(PictureBox1.Image) Dim f As New Font("MS Pゴシック", 11) g.DrawString("ABCDEFG", f, Brushes.Blue, 0, 0) End Using Clipboard.SetDataObject(PictureBox1.Image, True) End Sub
又は、ここのサンプルを利用して、貴方が書いたコード風にすると
'-------------------------- ここまでは貴方のコードを使用 ------------------------------ Chart1.Visible = False
Using memStream As New System.IO.MemoryStream() '一旦 Stream オブジェクトに保存 Chart1.SaveImage(memStream, System.Drawing.Imaging.ImageFormat.Bmp) Dim bmp As New Bitmap(memStream) With PictureBox1 .SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage .Image = bmp End With
Using g As Graphics = Graphics.FromImage(PictureBox1.Image) Dim f As New Font("MS Pゴシック", 11) g.DrawString("ABCDEFG", f, Brushes.Blue, 0, 0) End Using
End Using
If Not PictureBox1.Image Is Nothing Then 'データをシステム クリップボードに貼り付け Clipboard.SetDataObject(PictureBox1.Image, True) End If
でも同様の結果となります。 どこが、どう貴方のコードと違うのかを理解して下さい。
|