2016-10-26 5 views
0

Je cherchais la réponse à ma question, mais tous les codes que j'ai essayés n'ont pas fonctionné pour moi alors j'ai décidé de demander de l'aide. Je suis novice en matière de création de graphiques sur VB.net et mon patron veut des résultats (d'ici hier), donc je n'ai pas le temps de creuser plus profondément dans la façon de créer des graphiques.comment dessiner un graphique linéaire en utilisant les valeurs de la liste

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 

Je voudrais dessiner un graphique linéaire. J'ai une liste avec 10 numéros et un bouton. Je voudrais faire un graphique linéaire à partir de ces chiffres.
J'ai également essayé d'utiliser richtextbox au lieu de la liste mais pas de chance. Je voudrais obtenir quelque chose comme la photo ci-jointe.

Merci beaucoup pour votre aide. sample made in excel

+0

S'il vous plaît partager quelques détails sur le contenu de la zone de liste et comment/ce que vous » Je l'ai fait jusqu'ici. Un graphe 2D a Point (x, y), quelle est l'autre valeur? – Searching

+0

RichTextBox? Code postal de ce que vous avez essayé. – LarsTech

+0

"Tous les codes que j'ai essayés ne fonctionnaient pas pour moi" Eh bien, quel code avez-vous essayé et qu'est-ce qui n'a pas fonctionné? Voici un exemple simple d'ajout d'un seul point. https://msdn.microsoft.com/en-us/library/dd456769.aspx – topshot

Répondre

0

--update --- Remplacer cette partie dans la région des points de code fourni ci-dessous

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 

Un tableau doit être quelque chose comme ça

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) 

Je ne suis pas sûr Pourquoi utilisez-vous un RichTextBox1? Si vous collectez des points d'entrée (x, y), vous devrez construire vos points. Utilisez un contrôle TextBox au lieu de RichText, il devrait suffire, avec la description donnée.

Remplacer les points bit dans le code ci-dessus avec ce

'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 

En ce qui concerne le code que vous avez fourni, il n'y a aucun contrôle ListBox ou de référence à utiliser dans cet exemple.

AddXY(Double,Double)

+0

Désolé, la raison d'avoir richtextbox au lieu de listbox était que j'ai changé toutes les listboxes en richtextboxes pour tester si cela fonctionnerait comme ça. J'ai déjà des numéros dans la liste que je remplis depuis un autre formulaire. Techniquement l'axe X sera le nombre de points et le Y sera les valeurs (nombres de la liste) – Fred

+0

Le code que vous avez envoyé fonctionne très bien, mais j'ai besoin de lire ces nombres dans la Listbox1 – Fred

+0

Où 'ListBox' obtient des données de ? Ce 'Form' peut-il y accéder? Mettez à jour la question avec la référence 'Listbox' que vous avez. Cela vous aidera. – Searching

0

C'est le form2 modifié

Classe publique 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 

End Class

+0

Vous devriez toujours mettre vos mises à jour de code dans la question. Jamais dans les réponses. – Searching