環境は、Windows8,Visual Basic 2010 Expressです。
Chartを使っております。
プロパティで、チャートの種類を折れ線(Line)に設定しています。
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Chart1.Series("Series1").Points.AddY(10)
Chart1.Series("Series1").Points.AddY(50)
Chart1.Series("Series1").Points.AddY(30)
Chart1.Series("Series1").Points.AddY(40)
Chart1.Series("Series1").Points.AddY(60)
Chart1.Series("Series1").BorderWidth = 10
End Sub
でフォームの折れ線の幅は太くなります。
しかし、ボタンを貼り付けて
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Chart1.Printing.PrintPreview()
End Sub
を実行すると、折れ線の太さは太くなっていません。実際に印刷しても
元のまま(BoderWidthを設定しないときと同じ)になります。
折れ線を太く印刷するにはどうすればよいでしょうか。
ご教示の程、お願いします。
.NET版のChartは使ったことが無いので・・・
ttp://hanatyan.sakura.ne.jp/dotnet/mschart2.htm
ここに、.NETでOCX版のChartを貼ったケースの情報があります。
完全互換なら、この方法が使えるのでは・・・と思います。
お試しください。
以上。参考まで
オショウ様
ご回答ありがとうございます。
教えていただいたURLを見ましたが
使用しているChartにはPenプロパティが
見当たらずできませんでした。
http://hanatyan.sakura.ne.jp/dotnet/chartframe.htm
のページにChartのグラフを保存する方法があり
この方法で保存すると線も太く保存されました。
印刷も太く印刷されました。
Chart自身で同様の印刷ができるかをもう少し
調べてみます。
印刷を次のようにすれば、折れ線を太く印刷することが出来ました。
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'PrintDocumentオブジェクトの作成
Dim pd As New PrintDocument
'イベントハンドラの追加
AddHandler pd.PrintPage, AddressOf pd_PrintPage
Dim ppd As New PrintPreviewDialog
'PrintDocumentを設定
ppd.Document = pd
'ダイアログを表示する
ppd.ShowDialog()
End Sub
Private Sub pd_PrintPage(ByVal sender As Object, _
ByVal e As System.Drawing.Printing.PrintPageEventArgs)
'グラフをメモリにロード
Dim MemStm As New MemoryStream()
Chart1.SaveImage(MemStm, ImageFormat.Bmp)
'イメージオブェクにコピー
Dim Img As Image = Image.FromStream(MemStm)
e.Graphics.DrawImage(Img, e.MarginBounds)
'次ページなし
e.HasMorePages = False
'イメージオブジェクトを解放
Img.Dispose()
End Sub
解決とさせていただきます。
ツイート | ![]() |