Jump to content

Recommended Posts

Posted

Boas,

Contrui um grafico que carrega os dados apartir de 2 textbox, onde as texbox sao carregadas atraves de outros botoes. Mas cada vezes que os valores das textbox mudam , e carrego no botao para criar grafico novamente, dá erro, porque os dados mudam.

O que precisava era cada vez que clica se no botao para gerir o grafico, o mesmo fosse "destruido", para que um novo pudesse ser criado.

Vou mostrar o codigo que tenho para criar o grafico:

  Dim chartArea1 As New ChartArea()

        Chart1.ChartAreas.Add(chartArea1)

        Chart1 = New Chart()

        Chart1.ChartAreas.Add(chartArea1)

        Dim series1 As New Series()

        Dim series2 As New Series()

        series1.Points.Add(TextBox1.Text)

        series2.Points.Add(TextBox2.Text)

        series1.IsValueShownAsLabel = True

        series2.IsValueShownAsLabel = True

        series2.AxisLabel = " "

        chartArea1.Area3DStyle.Enable3D = True

        Chart1.Series.Add(series1)

        Chart1.Series.Add(series2)

        Chart1.Location = New System.Drawing.Point(595, 300)

        Chart1.Size = New System.Drawing.Size(300, 200)

        Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.Chart1})

LM

Posted

É um grafico de barras

Aqui está um print.

http://img156.imageshack.us/img156/9136/28734920.jpg

Cada vez que eu clico num mes, vai carregar as 2 textbox que tenho, com valores, depois ao clicar no botao para criar o grafico dá erro, por isso é que eu queria arranjar uma maneira de cada vez que clicasse no botao para criar o grafico, apaga se o que ja existe? tas a ver a ideia?

LM

Posted

Desculpa lá o atraso na resposta mas não foi mesmo possível mais cedo!

Vou tentar explicar:

Tu ao colocares um gráfico no form ele fica logo disponível, ou seja, é criada uma instância do gráfico e colocada no form. Outra maneira de o fazer é a seguinte:

Dim Chart1 As New Chart

Me.Controls.Add(Chart1)

Isto cria um novo gráfico e adiciona-o ao form.

Ora o que tu estás a tentar fazer é adicionar um gráfico que já está no form. Não podes!

O que tens de fazer é apagar os dados já existenter (Series, ChartAreas) e carregares novamente a informação.

Tenta assim:

        ' Limpa a informação anterior
        Chart1.ChartAreas.Clear()
        Chart1.Series.Clear()

        ' Define nova informação
        Dim chartArea1 As New ChartArea()
        Chart1.ChartAreas.Add(chartArea1)

        Dim series1 As New Series()
        Dim series2 As New Series()

        series1.Points.Add(TextBox1.Text)
        series2.Points.Add(TextBox2.Text)

        series1.IsValueShownAsLabel = True
        series2.IsValueShownAsLabel = True
        series2.AxisLabel = " "

        chartArea1.Area3DStyle.Enable3D = True

        Chart1.Series.Add(series1)
        Chart1.Series.Add(series2)

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.