Methode .Items.AddRange

  • VB.NET

Es gibt 13 Antworten in diesem Thema. Der letzte Beitrag () ist von VB1963.

    Die Liste erwartet bei der AddRange-Funktion via Overload 2 Typen:
    msdn.microsoft.com/de-de/libra…on.addrange(v=vs.80).aspx

    1. eine DataGridViewComboBoxCell.ObjectCollection
    2. ein Object.

    Da es sich bei Deiner List nicht um eine Objectcollection handelt, wird der Overload mit dem "As Object"-Parameter verwendet. Es macht den Anschein, als ob einfach versucht wird, deine List(of ) nach String zu casten, was "intList.ToString()" entspricht. Daher wahrscheinlich das "(Auflistung)".

    Falls picoflops Vorschlag auch nicht funktioniert, versuche es mit einer Objectcollection aus der DataGridViewComboBoxCell-Klasse statt einer List. Damit müsste es funktionieren.
    Von meinem iPhone gesendet
    Danke für die sehr raschen Antworten :)
    @picoflop: mit .ToArray kommt jetzt leider 'Int32[]-Array'
    @nikeee13: leider kommt da auch wieder '(Auflistung)', wobei ich
    Dim intList As New Collection() From {1, 2, 3, 4}
    als Deklaration verwendet habe ... oder habe ich dich da nicht richtig verstanden?

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

    Ich sehe gerade, dass der 2. Overload eine ParamArray von Object ist, kein Object an sich.

    Wenn du
    foo.AddRange(1,2,3,4,5)
    verwendest, müsste es au jeden Fall funktionieren.

    Schon mal New DataGridViewComboBoxCell.ObjectCollection(parent) versucht?
    Von meinem iPhone gesendet
    Ja mit der direkten Angabe foo.AddRange(1, 2, 3, 4) geht's.

    ....

    Dim intList As New DataGridViewComboBoxCell.ObjectCollection() From {1, 2, 3, 4}

    Mit obiger Deklaration kommt die folgende Fehlermeldung

    'Für den Parameter "owner" von "Public Sub New(owner As System.Windows.Forms.DataGridViewComboBoxCell)" wurde kein Argument angegeben.'

    mit der ObjectCollection habe ich noch keine Erfahrung, was meint er da? ...
    vielen Dank nochmals!

    Jetzt verstehe ich :)

    Das gehört so. Dim intList As New DataGridViewComboBoxCell.ObjectCollection(cbxCol) From {1, 2, 3, 4}

    wieder ein kleines Stückchen im .NET verstanden :)

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

    Das scheint mir bischen ein etwas komischer Hack.
    Ich würde IntList als List(Of Integer) belassen, weil da weiß man, was man hat.

    Sone komische ObjetCollection, wo man auch noch den Owner mit angeben muß - zB: wenndedie als Klassenvariable deklarierst, so geschieht die Initialisierung zu einem Zeitpunkt, wo cbXCol noch garnet zugewiesen ist - gibts da keine Exception für?

    Also mir scheint sicherer, die Items halt in einer Schleife zu adden - da weiß man, was passiert, bzw. was die cbxColumn mit ihre Items macht, geht ein' nix an.
    Wenn die Dim öffentlich deklariert ist, verursacht es Fehler ...
    Die funktioniert nur innerhalb der Ereignis-Sub nach dem Casten von cbxCol ...

    In dieser Form kann ich die ObjectCollection nicht weiterverwenden.
    Aber ich habe jetzt verstanden, was mit 'Owner' bei einer ObjectCollection gemeint ist
    und dass die intList(Of Integer) nur mit .Add() in einer Schleife richtig funktioniert.
    ich will mal nich so kleinlich sein - folgende Sätze ergeben nicht wirklich einen Sinn:

    VB1963 schrieb:

    Wenn die Dim öffentlich deklariert ist, verursacht es Fehler ...
    Dim öffentlich deklarieren??

    VB1963 schrieb:

    und dass die intList(Of Integer) nur mit .Add() in einer Schleife richtig funktioniert.
    Wattn fürne "intList(Of Integer)"?
    ich sehe eine Variable namens intList, und die war vom Typ ObjectCollection - ist aber sinnigererweise vom Typ List(Of Integer).

    Und dieses intList - Dings "funktioniert nur mit .Add() in einer Schleife richtig"?? - bist du dir sicher, alles richtig verstanden zu haben?

    Also ich denk ja, zum Proggen muß man die Begriffe richtig verstehen, und dann auch Sätze bilden, in denen die Begriffe richtig anwendet sind.
    Weil so wie man spricht, so denkt man glaub auch, und wenn die Sprache konfus ist, kannichmir kaum vorstellen, dass die Programme dann funzen.

    Aber egal: ich poste eh v.a., weil mir dein Avatar so ausgezeichnet gefällt, unds so schick aussieht, wenn wir uns unterhalten :thumbsup:
    @EDR:
    freut mich, dass dir mein Avatar so gefällt :)

    Wäre ich hier im Forum, wenn meine Programmkenntnisse schon genügen täten?
    Profi bin ich keiner, da kommt es mit meinen Kenntnissen schon nahe zu meinem Avatar ;)

    Ich beziehe mich auf das Bild meines 1. Posts:
    ... Dim auf Klassenebene deklariert
    ... IntList(Of Integer) --> Schreibfehler intList ist List(Of Integer)
    hoffentlich, hab ich mich da besser ausgedrückt :S

    Mit der .ObjectCollection ist es mir auf Prozedurebene, wie es mir von nikeee13 erklärt wurde, gelungen. Aber so kann ich es nicht brauchen.
    Bis jetzt hab ich das Werteübergeben mit cbxCol.Item.AddRange von der intList noch nicht zusammengebracht.
    Ich weis, dass es mit .Add in einer Schleife geht.

    Jetzt frage ich nochmals im Grundlagenforum, damit 'ich nicht dumm bleibe' ;) : "wie geht dass mit .AddRange?" :|
    also habe jetzt im ObjectBrowser bischen geguckt - sieht mir nicht so aus, als wäre da ohne Murxerei was mit anzufangen.
    Wie gesagt: die DataGridViewComboBoxCell.ObjectCollection ist eine ganz spezielle Auflistung, nur für DataGridViewComboBoxCells, also gehört eher zu den Innereien von DataGridView, mit denen man sich nicht herumschlagen muß (sollte).

    Du mußt ja auch bedenken, dasss beinem gebundenen DGV vlt. auch mal garkeine Zellen da sind - nämlich wenn die DataTable leer ist. Wie soll das da funktionieren, dass sone DataGridViewComboBoxCell.ObjectCollection einen gültigen Owner hat?