Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [VB.Net] Creare un overload di un metodo grafico

    Ciao a tutti,

    avrei necessità di creare un overload del metodoGraphics.DrawArc per consentire all'utente di disegnare un arco passante per tre punti anziché usare i paramentri imposti dall'istruzione di base della GDI+.
    Purtroppo la classe Graphics non consente di essere ereditata.

    Avete qualche suggerimento?

  2. #2
    Ciao
    Puoi creare una classe che abbia come Proprietà un oggetto Graphics ... dichiarare il metodo DrawArc con la firma che ti serve e nel costruttore della classe chiedi il riferimento all'oggetto Graphics.

    Facci sapere...
    Ciao

  3. #3
    Anzi ..... mi è venuta in mente una soluzione forse migliore.
    Puoi creare, in modulo(solo in modulo si possono dichiarare), un metodo extension che verrà aggiunto all'oggetto Graphics.
    Facci sapere...
    Ciao

  4. #4
    Grazie per la risposta... adesso provo a fare come hai suggerito.

    In realtà ho già risolto il mio problema, ma la soluzione che ho adottao non mi piace.

    ho usato qualcosa di simile:
    codice:
     Public Class Arco
    
        Dim a As Point
        Dim b As Point
        Dim c As Point
        
        Public Sub New()
    
        ...
        
        End Sub
    
         Public Property punto1() As Point
            Get
                Return a
            End Get
            Set(ByVal value As Point)
                a = value
            End Set
        End Property
    
        Public Property Punto2() As Point
            Get
                Return b
            End Get
            Set(ByVal value As Point)
                b = value
            End Set
        End Property
    
        Public Property punto3() As Point
            Get
                Return c
            End Get
            Set(ByVal value As Point)
                c = value
            End Set
        End Property
    
        Public Sub DisegnaArco(ByVal graphics As System.Drawing.Graphics)
    
        ...
        istruzioni per ricavare i dati necessari a disegnare un arco dati i 3 punti
        ...
            graphics.DrawArc(Pens.Black, X, Y, Width,...)
    
        End Sub
    
    End Class
    e nel modulo uso:
    codice:
    Dim mioArco As New Arco
    
        Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    
        mioArco.punto1 = New Point(10,10)
        mioArco.Punto2 = New Point(20,20)
        mioArco.punto3 = New Point(30,40)
    
        End Sub
    
        Private Sub PictureBox1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles PictureBox1.Paint
    
            mioArco.DisegnaArco(e.Graphics)
    
        End Sub
    Mi sarebbe piaciuto poter avere una classe che contiene il metodo DrawArc(pen, punto1, punto2, punto3) anziché DisegnaArco(e.Graphics).

  5. #5
    Lo puoi fare usare un ExtensionMethod .... riflettici, sarebbe un ottima soluzione.
    Facci sapere...
    Ciao

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.