Hallo Community,
ich habe seit gestern ein Problem mir einem Default Property.
Ich habe eine Klasse (Lines abgeleitet von Shape) in der Klasse Primitives deklariert. Der Compieler meinte ich brauch ein Default Property.
Intellisense hat es eingefügt. Nun wird mir aber die Figur (Lines) nicht mehr angezeigt. Ich denke weil irgendwo die Koordinaten etc fehlen.
Aber wo muss ich da initialisieren oder kann ich das ganze Default Property umgehen da es ein ganzes Lines Objekt zurückgeben will!
Das vereinfachte Programm hab ich angehängt.
Hier der relevante Code:
Primitives:
Lines:
Form1:
Vielen Dank für Eure Mühe und Hilfe,
Duster
P.S.: Wie mach ich einklappbare Spoiler?
ich habe seit gestern ein Problem mir einem Default Property.
Ich habe eine Klasse (Lines abgeleitet von Shape) in der Klasse Primitives deklariert. Der Compieler meinte ich brauch ein Default Property.
Intellisense hat es eingefügt. Nun wird mir aber die Figur (Lines) nicht mehr angezeigt. Ich denke weil irgendwo die Koordinaten etc fehlen.
Aber wo muss ich da initialisieren oder kann ich das ganze Default Property umgehen da es ein ganzes Lines Objekt zurückgeben will!
Das vereinfachte Programm hab ich angehängt.
Hier der relevante Code:
Primitives:
Lines:
VB.NET-Quellcode
- Imports System.Drawing.Drawing2D
- Public Class Lines
- Inherits Shape
- #Region "CLASS MULTILINES"
- #Region "MultiLines Private Variables"
- Private ReadOnly _e As PaintEventArgs
- Private ReadOnly _penData As PenData
- Private ReadOnly _coordinates As Point()
- #End Region
- #Region "Lines Properties"
- Default Public ReadOnly Property Test(e As PaintEventArgs, linesPenData As PenData, linesCoords As Point()) As Lines
- Get
- Return New Lines()
- End Get
- End Property
- Public Property LinesCaps As Boolean = True
- #End Region
- #Region "MultiLines Constructors"
- Public Sub New()
- End Sub
- Public Sub New(e As PaintEventArgs, penData As PenData, coordinates As Point())
- _e = e
- _penData = penData
- _coordinates = coordinates
- DrawMultiLines(_e, _penData, _coordinates)
- End Sub
- #End Region
- #Region "MultiLines Functions"
- Public Function DrawMultiLines(e As PaintEventArgs, penData As PenData, coordinates As Point()) As PaintEventArgs
- Dim linesPen As Pen
- linesPen = GeneratePen (penData)
- e.Graphics.DrawLines(linesPen, coordinates)
- linesPen.Dispose()
- Return e
- End Function
- #End Region
- #End Region
- End Class
Form1:
VB.NET-Quellcode
- Public Class Form1
- Private _cmdDrawState as Boolean = False
- Private _lines As New Lines
- Private ReadOnly _linesPenData as New PenData()
- Private _linesCoords as Point()
- Protected Overrides Sub OnPaint(e As PaintEventArgs)
- MyBase.OnPaint(e)
- _cmdDrawState = True
- _lines = Primitives.Lines(e, _linesPenData, _linesCoords)
- End Sub
- Public Sub InitializeShape()
- With _linesPenData
- .ShapeName = "Lines"
- .Alpha = 255
- .Red = 0
- .Green = 0
- .Blue = 255
- .Width = 10
- end With
- _linesCoords = {New Point(550, 220), New Point(800, 220),
- New Point(800, 220), New Point(800, 400),
- New Point(800, 400), New Point(550, 400)}
- End Sub
- Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
- InitializeShape()
- End Sub
- End Class
Vielen Dank für Eure Mühe und Hilfe,
Duster
P.S.: Wie mach ich einklappbare Spoiler?