Ler em inglês

Compartilhar via


Tutorial: Personalizando um quadro com eventos

Este tutorial demonstra como usar eventos para personalizar o gráfico. Você adicionará um marcador personalizado no ponto de dados máximo para realçar o vendedor que tem as maiores vendas deste ano.

Para concluir este tutorial, você deve ter concluído o tutorial Tutorial: um gráfico para um banco de dados de associação de dados

Adicionar o Namespace de gráfico

Para começar, abra o arquivo code-behind no seu aplicativo ASP.NET ou alternar para o modo de exibição de código em seu aplicativo de formulário do Windows.

Na parte superior do arquivo de código, adicione o namespace do gráfico, conforme mostrado abaixo.

' For Windows Forms
Imports System.Windows.Forms.DataVisualization.Charting
' For ASP.NET
Imports System.Web.UI.DataVisualization.Charting

Adicionando o evento PostPaint

Adicionar um manipulador de eventos para o Chart.PostPaint eventos.

No Windows Forms, isso é feito no construtor do formulário, logo após o InitializeComponent método. No ASP.NET, isso é feito Page_Load método de manipulador de eventos é criado automaticamente.

AddHandler Me.Chart1.PostPaint, AddressOf Chart1_PostPaint

Em seguida, adicione a definição do método manipulador de eventos que você acabou de registrar. Para fazer isso, adicione o seguinte código na definição de classe.

Private Sub Chart1_PostPaint(ByVal sender As Object, ByVal e As ChartPaintEventArgs) 
End Sub 

Executar pintura personalizada

Agora você adicionará código personalizado que destaca o vendedor que tem as maiores vendas deste ano. Para fazer isso, adicione o código a seguir para o Chart1_PostPaint manipulador de eventos que acabou de criar, salvar o arquivo e execute seu aplicativo.

' Make sure all series have been drawn before proceeding 
If TypeOf e.ChartElement Is Series AndAlso DirectCast(e.ChartElement, Series).Name = "Series2" Then 
   Dim s As Series = e.Chart.Series(0) 
   Dim cg As ChartGraphics = e.ChartGraphics 
   Dim max As Double = s.Points.FindMaxByValue().YValues(0) 
   
   ' Highlight the maximum sales this year 
   For i As Integer = 0 To s.Points.Count - 1 
      If s.Points(i).YValues(0) = max Then 
         ' Get relative coordinates of the data point 
         Dim pos As System.Drawing.PointF = System.Drawing.PointF.Empty 
         pos.X = CSng(cg.GetPositionFromAxis("ChartArea1", AxisName.X, i+1)) 
         pos.Y = CSng(cg.GetPositionFromAxis("ChartArea1", AxisName.Y, max)) 
         
         ' Convert relative coordinates to absolute coordinates. 
         pos = cg.GetAbsolutePoint(pos) 
         
         ' Draw concentric circles at the data point 
         For radius As Integer = 10 To 39 Step 10 
            cg.Graphics.DrawEllipse(System.Drawing.Pens.Red, _
               CSng(pos.X - radius / 2), _
               CSng(pos.Y - radius / 2), radius, radius) 
         Next 
      End If 
   Next 
End If 

Consulte também

Referência

System.Windows.Forms.DataVisualization.Charting

System.Web.UI.DataVisualization.Charting

Conceitos

Customization and Events

Outros recursos

Getting Started