Oppure

Loading
Questo topic e' stato chiuso dal moderatore.
30/10/11 17:10
maikarki
Buongiorno a tutti!
Visto che in precedenza siete stati così gentili ad aiutarmi ci riprovo ancora un volta.
Il problema è (credo) semplice ma, essendo un principiante, ritengo che mi stia sfuggendo qualcosa.
Io dovrei in VB.NET popolare due vettori separati all'interno di una subroutine, chamiamoli: punti_x() e punti_y()
Una volta creati e popolati si vorrebbe che fossero uniti in un insieme di punti rappresentando un poligono all'interno di un pannello.

Orbene: quanto descritto funziona se tutto il codice viene inserito all'interno di Private Sub Panel1_Paint ma quando cerco di spostare il punto di creazione del vettore una bella X rossa mi comunica che non viene effettuata correttamente la riproduzione del poligono. Il codice che si vorrebbe fare funzionare è il seguente:


Public Class Form1
    Public punti_x() As Double
    Public punti_y() As Double
    Public n As Integer



    Private Sub Panel1_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Panel1.Paint



        'Fusione dei due vettori dei punti X e Y in un unico insieme di punti da renderizzare
        N = UBound(punti_x)
        Dim cp(N - 1) As Point
        For pt = 0 To N - 1
            cp(pt).X = punti_x(pt)
            cp(pt).Y = punti_y(pt)
        Next


        Dim penna As New Pen(Color.Maroon, 2)
        Dim pennello As New SolidBrush(Color.Lime)
        e.Graphics.DrawPolygon(penna, cp)
        e.Graphics.FillPolygon(pennello, cp)

    End Sub

    Public Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        'INIZIA LA COMPOSIZIONE DEI 2 VETTORI CHE RICEVONO SEPARATAMENTE I VALORI DI X E Y

        n = 4
        ReDim Preserve punti_x(n)
        ReDim Preserve punti_y(n)
        'punto 1
        punti_x(0) = 0
        punti_y(0) = 0
        'punto 2
        punti_x(1) = 0
        punti_y(1) = 50
        'punto 3
        punti_x(2) = 50
        punti_y(2) = 50
        'punto 4
        punti_x(3) = 50
        punti_y(3) = 0

        'FINE DELLA COMPOSIZIONE DEI VETTORI

        '--------------------------------------------
    End Sub
End Class



Dove sto sbagliando?

Grazie mille
aaa
30/10/11 18:59
Qwertj
Riga? Errore?
aaa
30/10/11 19:51
All'inizio del Paint scrivi

If punti_x Is Nothing Then Return

e alla fine del Click

Panel1.Refresh()