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

タイトル Re^4: どなたか…
投稿日: 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

でも同様の結果となります。
どこが、どう貴方のコードと違うのかを理解して下さい。

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

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