ERLEDIGT
NEIN
NEIN
ANTWORTEN
3
3
ZUGRIFFE
6403
6403
EMPFEHLEN
-
Hallo,
mein Problem ist, dass zur Laufzeit erstellte Controls nicht ansprech bar sind.
Ich habe zwar bei Google etc. gesucht, aber nichts konkretes gefunden.
Fehlermeldung: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
Die Controls, in diesem Fall PictureBox, werden erstellt, aber ich kann sie nicht direkt ansprechen.
Der Name ist z.B. picBox1.
Ein Button-Click soll den Inhalt der erstellten picBox1 löschen, aber während der Entwurfszeit kommt schon fehler, also habe ich diese Zeile hinzugefügt:
private System.Windows.Forms.PictureBox picBox1; // einfach als Test, ob es klappt
// Diese Zeile ist natürlich nicht elegant, da ich nicht nur eine, sondern beliebig viele
// Controls erstellten will
Zu Laufzeit aber kann ich immer noch nichts ansprechen.
Wie könnte ich dieses Problem lösen?
Danke im Voraus.
-
Du machst das falsch. Folgendermaßen erstellst du ein PictureBox-Control zur Laufzeit:
Mit "this" ist in diesem Fall eine Form gemeint. Willst du die PictureBox in ein Panel auf deiner Form platzieren, musst du die Zuweisung an die Controls des Panels machen:Code :1 2 3 4 5
System.Windows.Forms.PictureBox picBox1 = new System.Windows.Forms.PictureBox(); picBox1.Name = "picBox1"; picBox1.Location = new Point(0,0); picBox1.Size = new Size(10, 50); this.Controls.add(picBox1);
Wie du das Control dann ansprechen kannst, siehst du in dem Beispiel von mir unter http://www.tutorials.de/forum/showpo...11&postcount=4Code :1
this.panelname.Controls.Add(picBox1);
Geändert von Norbert Eder (13.07.05 um 08:53 Uhr)
-
13.07.05 08:50 #3
Guten Morgen!
Controls dynamisch erstellen ist gar nicht so schwer. Du musst nur ein Control erstellen und es dann der Controls-Auflistung des Containers (Form, GroupBox, ...) hinzufügen und schon kannst du es sehen.
Um es dann auch ansprechen zu können, musst du die Controls-Auflistung durchgehen und z.B. anhand des Namens das richtige auswählen.
mfg broetchen
da war wohl einer schneller
-
18.07.06 12:40 #4
Hallo Ihr!
Ich habe so ein ähnliches Problem:
Möchte auch während der Laufzeit noch mehrere Controls hinzufügen, jedoch ist die Anzahl vor dem Programmstart nicht bekannt!
Hab mir etwas in der Form vorgestellt:
Code :1 2 3 4 5 6 7 8 9
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { // erstelle z.B: button2 System::Windows::Forms::Button^ button[i] = gcnew System::Windows::Forms::Button(); this->Controls->Add(button[i]); // nächster Button wird z.B. button3 i++; }
Klar, der Code funktioniert nicht, aber vom Prinzip her möcht ich genau so etwas,
ist das irgendwie möglich?
mfGMeine Blogs:
theIncredibleLeitman.blogspot.com // Tec
Gamesdev.de // Gamedevelop
Ein echter Programmierer hat nur natürliche 3 Feinde:- Sonnenlicht
- Frischluft
- und das unerträgliche Gebrüll der Vögel
Ownage
steht für die Fähigkeit einer Person, andere zu ownen, zum Beispiel „Ich habe die totale ownage.“ Gleichzeitig kann es aber auch die positive Qualität einer Sache beschreiben: „Counterstrike owns!“
(siehe:http://de.wikipedia.org/wiki/Computerspieler-Jargon)
Ähnliche Themen
-
[C#] Zur Runtime erstellte Controls ansprechen (OHNE das Name-Property)
Von sNiff3ls im Forum .NET Windows FormsAntworten: 3Letzter Beitrag: 18.06.09, 20:12 -
[VB.Net] Dynamisch erstellte Controls und der Zugriff darauf
Von Xervek im Forum .NET Windows FormsAntworten: 12Letzter Beitrag: 07.10.07, 09:25 -
[VB2005] zur runtime erstellte controls ansprechen?
Von BrainDamage im Forum Visual Basic 6.0Antworten: 1Letzter Beitrag: 18.02.06, 14:12 -
Dynamisch erstellte Controls ansprechen
Von nordkap im Forum .NET Windows FormsAntworten: 5Letzter Beitrag: 28.09.05, 20:57 -
Dynamisch erstellte Server-Controls
Von Calisto im Forum ASPAntworten: 1Letzter Beitrag: 09.03.02, 00:30





Zitieren
Login





