| | タイトル | : 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
 
 でも同様の結果となります。
 どこが、どう貴方のコードと違うのかを理解して下さい。
 
 |