Problem im Umgang mit Klassen (SimpleDiagramm Control)

  • VB.NET

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von Exodos.

    Problem im Umgang mit Klassen (SimpleDiagramm Control)

    Hallo alle zusammen

    Ich habe ein Problem mit den Klassen und Struktur-befehlen in VB.net

    folgender Hintergrund:

    ich schreibe ein Usercontrol (Diagramm).

    in dieses Diagramm soll der User Graphen einfügen können.

    So weit so gut die Klasse "DiagrammGraph" sieht wie folgt aus:

    VB.NET-Quellcode

    1. Public Class DiagrammGraph
    2. Private Name As String = ""
    3. Private Farbe As Color = Color.Black
    4. Private Style As DiagrammGraphStyle = DiagrammGraphStyle.Linie
    5. Private Punkte() As Point
    6. Friend Index As Integer
    7. Sub New()
    8. Me.Name = ""
    9. Me.Farbe = Color.Black
    10. Me.Style = DiagrammGraphStyle.Linie
    11. ReDim Me.Punkte(0)
    12. Me.Punkte(0) = New Point(0, 0)
    13. End Sub
    14. Sub New(ByVal Name As String, ByVal Farbe As Color, Optional ByVal style As DiagrammGraphStyle = DiagrammGraphStyle.Linie)
    15. Call Me.new()
    16. Me.Name = Name
    17. Me.Style = style
    18. Me.Farbe = Farbe
    19. End Sub
    20. End Class


    in der Steuerelementklasse "SimpleDiagramm" will ich jetzt mittels der Property "Graph" dem nutzter die Möglichkeit geben
    mittels des folgenden Codes einen Graph hinzuzufügen...

    VB.NET-Quellcode

    1. Dim gr As new DiagrammGraph()
    2. SimpleDiagramm1.Graph.Add(gr)


    ...oder einen Graphen zu löschen...

    VB.NET-Quellcode

    1. Dim Index as integer=5
    2. SimpleDiagramm1.Graph(Index).Del


    ...oder einzelne Eigenschaften eines Graphen ändern

    VB.NET-Quellcode

    1. Dim Index as integer=5
    2. SimpleDiagramm1.Graph(Index).Name="Graph4"


    die einzelnen Graphen werden hier gespeichert:

    VB.NET-Quellcode

    1. dim mvarGraphColl() As DiagrammGraph = Nothing


    ich habe folgendes schon versucht:

    VB.NET-Quellcode

    1. Public Property Graph(ByVal Index As Integer) As DiagrammGraph
    2. Get
    3. return mvarGraphColl(index).Name
    4. End Get
    5. Set(ByVal value As DiagrammGraph)
    6. Debug.Print(value)
    7. End Set
    8. End Property


    aber ich kriege immer die meldung, das keine Instanz erstellt wurde.

    Kann mir bitte jemmand helfen??

    Danke Exodos
    Wie du (anscheinend nicht) siehst, ist die betroffene Eigenschaft als Public deklariert.
    Poste mal die genaue Fehlermeldung, das heißt mit Stacktrace usw. Darauf kannst du zugreifen wenn du in dem Fenster, wo die Fehlermeldung angezeigt wird, auf 'Details' klickst.

    Problem im Umgang mit Klassen (SimpleDiagramm Control)

    hier die Fehlermeldung:

    System.NullReferenceException wurde nicht behandelt.
    Message="Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt."
    Source="UserControlDLL"
    StackTrace:
    bei UserControlDLL.Form1.SimpleDiagramm1_Click(Object sender, EventArgs e) in D:\DEV\VB 2008\UserControlDLL\UserControlDLL\Form1.vb:Zeile 7.
    bei System.Windows.Forms.Control.OnClick(EventArgs e)
    bei System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
    bei System.Windows.Forms.Control.WndProc(Message& m)
    bei System.Windows.Forms.ScrollableControl.WndProc(Message& m)
    bei System.Windows.Forms.ContainerControl.WndProc(Message& m)
    bei System.Windows.Forms.UserControl.WndProc(Message& m)
    bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
    bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
    bei System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
    bei System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
    bei System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
    bei System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
    bei System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
    bei System.Windows.Forms.Application.Run(ApplicationContext context)
    bei Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun()
    bei Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel()
    bei Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine)
    bei UserControlDLL.My.MyApplication.Main(String[] Args) in 17d14f5c-a337-4978-8281-53493378c1071.vb:Zeile 81.
    bei System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
    bei System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
    bei Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
    bei System.Threading.ThreadHelper.ThreadStart_Context(Object state)
    bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
    bei System.Threading.ThreadHelper.ThreadStart()
    InnerException: