Mensen,
Wat betreft VB ben ik vrij nieuw en loop ergens tegenaan.
Ik wil een grafiek maken in een nieuw VB form.
In mijn hoofddocument doe ik de nodige scripting en open op een gegeven moment een nieuw VB form:
Dim NewWindow As OutputData
NewWindow = New OutputData
NewWindow.SqLiteReadAllQueryNW(MySqlQuery, NumberOfColums, PvDataPath, DatabaseName, Trim(CB_Display.Text))
NewWindow.Show()
In dat nieuw form, wat netjes geopend wordt, doe ik 2 dingen
Afhankelijk van een parameter wordt of een LISTBOX gevult vanuit een SQLite query. Dit gaat goed.
Nu wil ik die query ook gebruiken om van de data een grafiek te maken in een PICTUREBOX en dat lukt mij maar niet.
Op internet kom ik veel tips tegen maar die gaan allemaal uit van een BUTTON_CLICK.... en dat is bij mij dus niet het geval.
Op het nieuwe form heb ik een LISTBOX en een PICTUREBOX gedefinieerd.
Zoals gezegd de LISTBOX kan ik netjes vullen, maar voor de PICTUREBOX gebruik ik de volgende code:
Imports System
Imports System.Collections
Imports System.Data
Imports System.IO
Imports System.Windows.Forms.Form
Imports System.Data.SQLite
Imports System.Globalization
Imports System.Drawing.Imaging
Imports System.Drawing
Imports Microsoft.VisualBasic.PowerPacks
Public Class OutputData
Public Sub SqLiteReadAllQueryNW(ByVal MySqlQuery As String, ByVal NumberOfColums As Integer, ByVal PvDataPath As String, ByVal DatabaseName As String, ByVal InputGraphic As String)
Dim GraphWith As Integer = PB_GraphicBox.Width
Dim GraphHeight As Integer = PB_GraphicBox.Height
Dim Graph As Graphics
Graph = PB_GraphicBox.CreateGraphics()
Dim mypen As New Pen(Color.Black, 5)
Dim GraphCounter As Integer = 0
'Hide and display ListBox and PictureBox
If Trim(InputGraphic) = "Table" Then
LB_Output.Visible = True
PB_GraphicBox.Visible = False
Else
LB_Output.Visible = False
PB_GraphicBox.Visible = True
'X line
Graph.DrawLine(mypen, 10, 10, GraphWith - 20, 10)
'Y line
Graph.DrawLine(mypen, 10, 10, 10, GraphHeight - 20)
End If
End Sub
End Class
Met de "Graph.DrawLine" zouden in ieder geval de X en Y as getekend moeten worden maar de picturebox blijft leeg.
Ik gebruik Visual Studio 2010
Bij deze hulp gevraagd van iemand.
Wat betreft VB ben ik vrij nieuw en loop ergens tegenaan.
Ik wil een grafiek maken in een nieuw VB form.
In mijn hoofddocument doe ik de nodige scripting en open op een gegeven moment een nieuw VB form:
Dim NewWindow As OutputData
NewWindow = New OutputData
NewWindow.SqLiteReadAllQueryNW(MySqlQuery, NumberOfColums, PvDataPath, DatabaseName, Trim(CB_Display.Text))
NewWindow.Show()
In dat nieuw form, wat netjes geopend wordt, doe ik 2 dingen
Afhankelijk van een parameter wordt of een LISTBOX gevult vanuit een SQLite query. Dit gaat goed.
Nu wil ik die query ook gebruiken om van de data een grafiek te maken in een PICTUREBOX en dat lukt mij maar niet.
Op internet kom ik veel tips tegen maar die gaan allemaal uit van een BUTTON_CLICK.... en dat is bij mij dus niet het geval.
Op het nieuwe form heb ik een LISTBOX en een PICTUREBOX gedefinieerd.
Zoals gezegd de LISTBOX kan ik netjes vullen, maar voor de PICTUREBOX gebruik ik de volgende code:
Imports System
Imports System.Collections
Imports System.Data
Imports System.IO
Imports System.Windows.Forms.Form
Imports System.Data.SQLite
Imports System.Globalization
Imports System.Drawing.Imaging
Imports System.Drawing
Imports Microsoft.VisualBasic.PowerPacks
Public Class OutputData
Public Sub SqLiteReadAllQueryNW(ByVal MySqlQuery As String, ByVal NumberOfColums As Integer, ByVal PvDataPath As String, ByVal DatabaseName As String, ByVal InputGraphic As String)
Dim GraphWith As Integer = PB_GraphicBox.Width
Dim GraphHeight As Integer = PB_GraphicBox.Height
Dim Graph As Graphics
Graph = PB_GraphicBox.CreateGraphics()
Dim mypen As New Pen(Color.Black, 5)
Dim GraphCounter As Integer = 0
'Hide and display ListBox and PictureBox
If Trim(InputGraphic) = "Table" Then
LB_Output.Visible = True
PB_GraphicBox.Visible = False
Else
LB_Output.Visible = False
PB_GraphicBox.Visible = True
'X line
Graph.DrawLine(mypen, 10, 10, GraphWith - 20, 10)
'Y line
Graph.DrawLine(mypen, 10, 10, 10, GraphHeight - 20)
End If
End Sub
End Class
Met de "Graph.DrawLine" zouden in ieder geval de X en Y as getekend moeten worden maar de picturebox blijft leeg.
Ik gebruik Visual Studio 2010
Bij deze hulp gevraagd van iemand.