• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Luis Marques

"Destruir" Grafico

9 mensagens neste tópico

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})

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Dá lá mais detalhes como estás a fazer isso. Que tipo de gráficos são ?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

É um grafico de barras

Aqui está um print.

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?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Esquecime de dizer que o erro é o seguinte : "Object reference not set to an instance of an object."

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora