Fehler beim hinzufügen von Strings in List Of

  • VB.NET

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Fehler beim hinzufügen von Strings in List Of

    Hey Leute,

    ich habe ein kleines Problem mit einer List(Of...). Ich habe die List in einer Class mit meiner eigenen Control als Property. Von meiner Form aus, versuche ich nun etwas in die List einzufügen. Ich bekomme allerdings jedes mal eine Fehlermeldung:
    System.NullReferenceException: "Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt."

    MyApplication.MyComboBoxTest.get_Item hat Nothing zurückgegeben.


    Ich habe folgenden Code, wobei der Fehler auch angezeigt wird, in der Form:

    VB.NET-Quellcode

    1. ​Dim f As New InstalledFontCollection
    2. For Each Fonts As FontFamily In f.Families
    3. ComboBox1.Items.Add(Fonts.Name)
    4. If Not Fonts.Name = Nothing Then AminiaComboBox1.Item.Add(Fonts.Name)
    5. Next


    In meinem Control, habe ich den Code:

    VB.NET-Quellcode

    1. Private itemList As List(Of String)
    2. Public Property Item As List(Of String)
    3. Get
    4. Return itemList
    5. End Get
    6. Set(value As List(Of String))
    7. itemList = value
    8. End Set
    9. End Property
    if Brain.Enabled = False Then
    Process.start("C:\Brain.exe")
    End if
    __________________________________________________

    Error: Brain.exe not found System shut down
    Steht in Deinem Code auch irgendwo itemList = New List(Of String)? Sonst weiß zwar der Compiler, was itemList ist, aber sie existiert dann noch nicht. Das musst Du mit New veranlassen. Ansonsten schreib gleich im unteren Codeblock:

    VB.NET-Quellcode

    1. Private itemList As New List(Of String)

    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Häufig von mir verwendete Abkürzungen: CEs = control elements (Labels, Buttons, DGVs, ...) und tDS (typisiertes DataSet)
    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht in den Spekulatiusmodus gehen.
    Huch, das fehlte wirklich, habe es auch jetzt hinzugefügt. Der Fehler, tritt allerdings immer noch auf.

    //EDIT: Es Funktioniert doch, war mal wieder zu verpeilt um zu merken, dass ich die falsche Class nutzte. Trotzdem Danke
    if Brain.Enabled = False Then
    Process.start("C:\Brain.exe")
    End if
    __________________________________________________

    Error: Brain.exe not found System shut down

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Toni03“ ()

    In welcher Zeile welches Codeblocks aus Post#1 taucht der Fehler auf und welches Argument ist Nothing?
    Außerdem fällt mir (jetzt erst) auf: Der 1. Codeblock ergibt doppelt keinen Sinn. Du legst mit f ne neue Collection an und gehst dann deren Items durch. Das Ding hat aber wahrscheinlich gar keine Items, da neu angelegt. Und Deine Prüfung auf Fonts.Name = Nothing sollte auch für Zeile#3 gelten, sonst wird dort wohl auch ne Exception auftreten, weil Nothing zu ner ComboBox hinzufügen ist m.E. verboten.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Häufig von mir verwendete Abkürzungen: CEs = control elements (Labels, Buttons, DGVs, ...) und tDS (typisiertes DataSet)
    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht in den Spekulatiusmodus gehen.

    Toni03 schrieb:

    VB.NET-Quellcode

    1. If Not Fonts.Name = Nothing Then AminiaComboBox1.Item.Add(Fonts.Name)
    machst Du:

    VB.NET-Quellcode

    1. If Fonts IsNot Nothing Then AminiaComboBox1.Item.Add(Fonts.Name)
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    VB-Fragen über PN / Konversation werden ignoriert!

    RodFromGermany schrieb:

    If Fonts IsNot Nothing Then AminiaComboBox1.Item.Add(Fonts.Name)


    Ne, das ist nicht das Problem, nur ist das erste item aus der Collection einfach nichts und dann kommen erst die Font Names.

    VaporiZed schrieb:

    In welcher Zeile welches Codeblocks aus Post#1 taucht der Fehler auf und welches Argument ist Nothing?


    Das war eine ganz andere Class. Hatte mich nur vertan. Es funktioniert nun.
    if Brain.Enabled = False Then
    Process.start("C:\Brain.exe")
    End if
    __________________________________________________

    Error: Brain.exe not found System shut down
    @Toni03 Da hast Du wohl Deinen Fehler nicht bemerkt:
    Deine Abfrage

    VB.NET-Quellcode

    1. If Not Fonts.Name = Nothing Then
    knallt, wenn Fonts Nothing ist.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    VB-Fragen über PN / Konversation werden ignoriert!
    Kann denn Fonts Nothing sein, wenn es als Enumerationselement innerhalb einer For-Each-Loop definiert ist, so wie in Post#1, Codeblock#1 zu sehen?
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Häufig von mir verwendete Abkürzungen: CEs = control elements (Labels, Buttons, DGVs, ...) und tDS (typisiertes DataSet)
    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht in den Spekulatiusmodus gehen.
    @VaporiZed Das ist ein grundsätzlicher Fehler, da stolpert der Resharper und die Codeanalyse drüber.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    VB-Fragen über PN / Konversation werden ignoriert!