2016-10-26 14 views
0

私は自分の質問に対する答えを探していましたが、試したコードはすべて私のために働かなかったので、助けを求めることにしました。 私はVB.netでチャートを作っている初心者です。私の上司は結果を(昨日までに)求めていますので、チャートの作成方法を詳しく調べる時間がありません。リストボックスの値を使って折れ線グラフを描く方法

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click 

Dim a As Double 
Dim b As String 
b = RichTextBox1.Text 
a = Convert.ToDouble(b) 
'Chart1.DataBindTable(b) 
' Chart1.(RichTextBox1.Text) 
'Chart1.Series("Series1").Points.DataBindY(RichTextBox1.Text) 
'Convert.ToInt32(b, 0) 
Chart1.DataSource = RichTextBox1.Text 
'Chart1.Series("Series1").Points.DataBindY(RichTextBox1.Text) 
'Chart1.Series("Series1").Points.AddY(b) 

'Chart1.Series("Series1").YValueMembers = b 
Me.Chart1.Series("Series1").Points.AddY(a) 
'MsgBox(RichTextBox1.Text) 
MsgBox(a) 
'Me.Chart1.Series("Series1").Points.InsertY(b) 

Me.Refresh() 

End Sub 

Private Sub Form1_Load(sender As System.Object, e As System.EventArgs)  Handles MyBase.Load 

End Sub 

私は折れ線グラフを描きたいと思います。 私は10個の数字とボタンを持つリストボックスを持っています。これらの数字から折れ線グラフを作成したいと思います。
私はリストボックスの代わりにrichtextboxを使用しようとしましたが、運はありませんでした。 私は付属の画像のようなものを入手したいと思います。

ありがとうございました。 sample made in excel

+0

「リストボックスの内容とどのように/何についてのいくつかの詳細を共有してください。今まで行ったことがあります。 2-DグラフはPoint(x、y)を持ちますが、他の値は何ですか? RichTextBox? – Searching

+0

あなたが試したものの郵便番号。 – LarsTech

+0

"私が試したコードはすべて私のためには機能しませんでした"まあ、どのコードを試しましたか?ここでは、単一のポイントを追加する簡単な例を示します。 https://msdn.microsoft.com/en-us/library/dd456769.aspx – topshot

答えて

0

--update ---

Dim x2 As Integer = 0 ' Keep a track of index 
    For Each i As Integer In ListBox1.Items 
     ' create a Point with index as x and the actual value of list item as y 
     s.Points.AddXY(Convert.toDouble(x2), Convert.toDouble(i)) 
     x2 = x2+1 
    Next 

チャートの下に設けられたコードのポイント地域のこの部分を交換し、私はわからないんだけど、この

Chart1.Series.Clear() 'Empty your chart of any previous values 

Chart1.Titles.Add("My Line chart") 'Add a Title 

Dim s As New Series 'Create a new series 
s.Name = "My Line" 'Series name 

s.ChartType = SeriesChartType.Line 'Chart type 

'Most important part, the points to plot 
'Points START 
    s.Points.AddXY(1, 2) 
    s.Points.AddXY(3, 4) 
    s.Points.AddXY(5, 9) 
'Points END 

'Add the series to the Chart1 control 
Chart1.Series.Add(s) 

のようなものでなければなりませんなぜRichTextBox1を使用しているのですか?ユーザー入力(x、y)ポイントを収集する場合は、ポイントを作成する必要があります。 RichTextの代わりにTextBoxのコントロールを使用してください。

は限り、あなたが提供したコードのように、この

'Assume the user is entering value/numbers separated by "," 
'Use the input as both x and y 
'e.g 1,2,3,... 
Dim textCont As String = TextBox.Text 
Dim boxValues As String() = textCont.Split(New Char() {","}) 
For Each item In boxValues 
s.Points.AddXY(Convert.toDouble(item), Convert.toDouble(item)) 
s.Points.AddXY(Convert.toDouble(item), Convert.toDouble(item)) 
s.Points.AddXY(Convert.toDouble(item), Convert.toDouble(item)) 
Next 

で上記のコードでポイントビットを交換して、この例で使用するいかなるListBoxコントロールまたは参照がありません。

AddXY(Double,Double)

+0

申し訳ありませんが、リストボックスの代わりにrichtextboxを使用した理由は、すべてのリストボックスをrichtextboxに変更して、そのように動作するかどうかをテストすることでした。私はすでに別のフォームから入力しているリストボックスに数値を持っています。技術的にはX軸はポイント数、Yは値(リストボックスの数字) – Fred

+0

あなたが送ったコードは素晴らしいですが、リストボックス1からそれらの数字を読み取る必要があります – Fred

+0

ここで 'ListBox'はデータを取得しますから?この 'Form'はそれにアクセスできますか?あなたが持っている 'Listbox'リファレンスを使って質問を更新してください。役立つでしょう。 – Searching

0

これは修正さForm2のある

パブリック・クラスX_axis_chart

Private Sub X_axis_chart_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load 
    Dim a As Integer 
    ListBox1.Items.Clear() 
    For a = 0 To Main.ListBox2.Items.Count - 1 Step 1 
     ListBox1.Items.Add(Main.ListBox2.Items.Item(a).ToString) 
    Next 
    'Chart1.Series("X axis").Points.DataBindY(ListBox1.Text) 
    Chart1.Series("X axis").Points.AddXY("Text", ListBox1.Text) 
End Sub 

エンドクラス

+0

あなたは常にあなたのコード更新を質問に入れてください。アンサーには絶対にいない。 – Searching

関連する問題