タイトル | : ユーザーコントロールについて |
記事No | : 9598 |
投稿日 | : 2009/11/17(Tue) 17:16 |
投稿者 | : たっち |
VB2008にてグラフを出力するプログラムを作成しているのですが、動いてくれません。 どこがおかしいのかをご教授願いたいです。
・グラフの描写には「zedgraph」というオープンソースのクラスを使っています。 ・ユーザーコントロールとしてクラスを作ると上手く動いてくれません。 ・参考:http://www.atmarkit.co.jp/fdotnet/vblab/extcompo_02/zedgraph_04.html ・ユーザーコントロールに貼り付けたグラフのnameは「zg1」になってます
以下フォームのソース Public Class Form1 Dim test2 As New draw_graph
Private Sub cmdInvisible_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles cmdInvisible.Click
Dim x2 As Integer
x2 = txtvalur1.Text
test2.output_linegraph(x2) End Sub End Class
以下ユーザーコントロールクラスのソース Imports ZedGraph Public Class draw_graph
Dim list As New PointPairList Dim i As Integer
Private Sub Form_Load(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MyBase.Load Create_LineGraph(zg1) ' 折れ線グラフ End Sub
' グラフの出力 Public Sub output_linegraph(ByRef x As Double)
list.Add(i, x)
draw_linegraph(zg1, list)
i += 1
End Sub
' グラフの描写 Private Sub draw_linegraph(ByVal zg As ZedGraphControl, _ ByVal list As PointPairList)
Create_LineGraph(zg)
zg.GraphPane.CurveList.Clear()
Dim myPane As GraphPane = zg.GraphPane
Dim myCurve As LineItem
myCurve = myPane.AddCurve( _ "測定値", list, Color.Red, SymbolType.Diamond) myCurve.Symbol.Fill = New Fill(Color.White) ' ラインの色
' グラフの際描写 zg.AxisChange() zg.Invalidate() End Sub
' グラフの設定 Private Sub Create_LineGraph(ByVal zg As ZedGraphControl)
Dim myPane As GraphPane = zg.GraphPane
' グラフ/X軸、Y軸のタイトル設定 myPane.Title.Text = "線グラフのサンプル" myPane.XAxis.Title.Text = "時間" myPane.YAxis.Title.Text = "値"
' X軸の目盛りを描画 myPane.XAxis.MajorGrid.IsVisible = True
' Y軸のスケールを赤に myPane.YAxis.Scale.FontSpec.FontColor = Color.Red myPane.YAxis.Title.FontSpec.FontColor = Color.Red
' 反対側のY軸の目盛りの描画 myPane.YAxis.MajorTic.IsOpposite = False myPane.YAxis.MinorTic.IsOpposite = False
' Yが0の位置の水平線 myPane.YAxis.MajorGrid.IsZeroLine = True myPane.YAxis.Scale.Align = AlignP.Inside
' Y軸の範囲を指定する myPane.YAxis.Scale.Min = -20 myPane.YAxis.Scale.Max = 30 myPane.YAxis.IsVisible = True
' グラフ領域の内側をグラデーションに myPane.Chart.Fill = _ New Fill(Color.White, Color.LightGray, 45.0F)
' テキストボックスをグラフの左下に描画 Dim text As New TextObj( _ "Zoom: 左のマウスボタンでドラッグ" & Chr(10) & _ "Pan: Ctrl+左ボタンでドラッグ" & Chr(10) & _ "Context Menu: 右ボタン", _ 0.05F, 0.95F, CoordType.ChartFraction, AlignH.Left, AlignV.Bottom) text.FontSpec.StringAlignment = StringAlignment.Near myPane.GraphObjList.Add(text)
' スクロールバーは非表示 zg.IsShowHScrollBar = False zg.IsShowVScrollBar = False zg.IsAutoScrollRange = True
' ポイントの値をToolTip風に表示する zg.IsShowPointValues = True
zg.AxisChange()
End Sub
End Class
VB暦一ヶ月初心者が書いたコードですので可笑しい所は多々あると思いますが、 どこが致命的なのかを指摘していただければ幸いです。
よろしくお願いいたします。
|