Einen Vektor aus Steuerelementen
-
Hallo ihr,
Ich wuerde gerne dynamisch viele Steuerelemente auf meinem Formular haben.
Das liegt daran, weil es fuer jeden Eintrag in einer Datenbank einen bestimmten Satz Steuerelemente geben sollte.
Nun habe ich logischerweise erstmal das hier versucht:std::vectorSystem::Windows::Forms::Button button(40);
Aber natuerlich geht das nicht - es gibt in der Vektorklasse zig Fehler, wie
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xmemory(98) : error C3699: "&": Diese Referenzierung kann nicht für den Typ "const
Wo genau muss ich ansetzen?
cya
David
-
Uhh ich weiss jetzt gar nicht, ob man die STL mit .Net mischen kann. Ich würde es entweder mit einer Datenstruktur aus System::Collections probieren oder einem .Net-Array:
array<System::Windows::Forms::Button^>^ button = gcnew array<System::Windows::Forms::Button^>(40); button[i] = ...
Gruß Vanish
-
Hey,
Danke fuer die Antwort - jetzt kann ich immerhin schonmal ein Array erstellen.
Aber sobald ich es benutzen will stresst der Compiler wieder herum:array<System::Windows::Forms::Button^>^ button = gcnew array<System::Windows::Forms::Button^>(40); button[1]->Text = L"button2";
Wenn ich nun den Button druecke bekomme ich folgendes:
Eine nicht behandelte Ausnahme des Typs "System.NullReferenceException" ist in Steuerelemente_dynamisch.exe aufgetreten.
Zusätzliche Informationen: Object reference not set to an instance of an object.
Als gaebe es das Objekt noch garnicht richtig...
Sobald ich das selbe ohne Array probiere gehts natuerlich...
-
777 schrieb:
Als gaebe es das Objekt noch garnicht richtig...
Gibt's ja auch nicht. Du hast ein Array mit Platz für 40 Steuerelemente. Dadurch werden aber nicht 40 Steuerelemente erzeugt.
Achte auf das, was in den spitzen Klammern steht: Würden hier normale Zeiger (array<Button*>) verwaltet, wäre die Situation die gleiche, Du müsstest dem Array ein new Button (oder irgendeinen anderen Button-Zeiger) hinzufügen.