Graphics-Klasse erweitern

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von der_Kurt.

    Graphics-Klasse erweitern

    Hallo Leute,
    ich stehe grade mit ner Lapalie aufm Schlauch:
    Ich erstelle mir ein Usercontrol für ein Diagramm. Dabei soll die Kurve in unterschiedlichen Styles dargestellt werden können. Der folgende Code funktioniert auch einwandfrei

    VB.NET-Quellcode

    1. Select Case Kurve.Aussehen
    2. Case TestElement.Kurve.Style.Spline
    3. g.DrawCurve(Kurve.Stift, WerteListe)
    4. Case TestElement.Kurve.Style.Polyline
    5. g.DrawLines(Kurve.Stift, WerteListe)
    6. Case TestElement.Kurve.Style.PointsRound
    7. 'Parameter: Stift, Liste mit PointF, GraphicsObjekt, Größe des Punktes
    8. Kurve.DrawPointsRound(Kurve.Stift, WerteListe), g, 10)
    9. Case TestElement.Kurve.Style.PointsRect
    10. 'Parameter: Stift, Liste mit PointF, GraphicsObjekt, Größe des Punktes
    11. Kurve.DrawPointsRect(Kurve.Stift, WerteListe, g, 20)
    12. 'weitere Styles
    13. Case Else
    14. End Select
    aber:
    Die letzten beiden Case sähen schöner aus, wenn ich schreiben könnte: g.DrawPointsRound(....). Dazu müßte ich die graphics-Klasse um meine Methoden erweitern. Graphics ist aber nicht vererbbar. Kriegs nich hin ?( .
    Gibs da ne Möglichkeit? Oder versuche ich da was unsinniges?

    Danke für eure Hilfe
    :thumbsup: Seit 26.Mai 2012 Oppa! :thumbsup:
    @jvbsl: Mistverständnis
    Es gibt schon eine reihe Draw...Methoden. Ich will aber eigene hinzufügen. Im Moment hab ich einfach ne Sub in der jeder punkt der Liste als gefüllter Kreis oder gefülltes Rechteck dargestellt wird. Das funzt auch bestens. Was ich suche, ist ne Möglichkeit diese meine Subs in die Graphics-Klasse mit reinzunehmen, so dass ich sie mit Graphics.DrawBlabla(....) aufrufen kann, verstehste?
    Is auch nich soooooo wichtig. Sieht halt im Code besser aus und ein Nutzer kann dann in dem Gerüst ganz einfach weiter Styles "erfinden" und die Case-Anweisung erweitern.
    Ich habs mit "Partial Class Graphics" probiert, geht aba nich.
    :thumbsup: Seit 26.Mai 2012 Oppa! :thumbsup:
    Hi!
    Extension Methods
    In etwa so:

    VB.NET-Quellcode

    1. Module Erweiterung
    2. <System.Runtime.CompilerServices.extension>Sub ZeichneQuadrat(e as graphics, X as integer)
    3. ....
    4. End Sub


    Das Ganze muss in einem eigenen MODUL stehen, der erste Parameter ist die Klasse, die erweitert wird...

    Anwendung:

    VB.NET-Quellcode

    1. g.ZeichneQuadrat