Controls in einem Container

michback20

Grünschnabel
Hallo Leute,

ich habe ein Container, in dem ich per Mausklick mehrere UserControls des gleichen Typs entstehen lasse.
Nun möchte ich durch ein weiteren Button eine DataTable erzeugen, die die ganzen UserControls und Ihre Eigenschaften enthält. Das Eintragen in diese Tabelle soll erst erfolgen, wenn ich auch den o.g. Button drücke. Wie kann ich den Container nach den darin enthaltenen Objekten durchsuchen?

Nächstes Problem ist dann, dass ich per Doppelklick auf den UserControl eine weiter Klasse aufrufe, in der dann die ganzen Eigenschaften des einzelnen Objektes spezifiziert werden. Diese Eigenschaften sollen dann nachher in der Tabelle an der richtigen Stelle geschrieben werden.
Wenn ich mehrere gleiche UserControlobjekte erzeugt habe, entsteht durch den Doppelklick ja im Prinzip das gleiche Objekt der Klasse, wo die Eigenschaften eingetragen werden. Ich habe nun 2 UserControls aus einer Klasse erzeugt und 2 Eigenschaftsobjekte einer weiteren Klasse. Wie bekomme ich das alles so hin, dass in meiner DataTable alles an der richten Stelle steht

Gruß Michael
 
Hi!

Code:
Container.Controls[int Index].Eigeschaft
Code:
foreach ( Control obj in Container.Controls ){
	((MyUserControl) obj).Eigenschaft // hier wird gecasted
}
  • Versieh deine UserControls mit einem eindeutigen Merkmal. Das kann ein Index oder ein Name sein. Damit kannst Du sie in einer Reihenfolge abfragen und unterscheiden kannst. Ich würde eine Methode schreiben die die Contols ausliest und in die Tabelle schreibt. Wozu brauchst Du eine Klasse dafür? Oder bin ich nicht mitgekommen?

Gruss cosmo
 
Danke erst einmal für deine schnelle Antwort.

Die 2. Klasse soll ein neues Form sein, in dem diverse Textboxen sind, die vom Benutzer ausgefüllt werden sollen. Sprich, wenn ich doppelt auf das UserControl drücke, geht ein neues Fenster auf, in dem dann die Eigenschaften des UserControls eingetragen werden. Problem ist, dass im Prinzip immer, wenn ich auf ein UserControl doppelt klicke, die gleiche 2. Klasse aufgerufen wird. Ich weiß nicht, wie ich die dort eingetragenen Eigenschaften eindeutig dem UserControl zuweisen kann? Ich habe viele gleiche UserControls. Ich habe die einzelnen UserControls bereits mit einem Zähler versehen.

Gruß Micha
 
Speicher den Index(Zähler) des aktuell angeklickten UserControls und veranlasse dein UserControl welches die anderen mit Daten füllt, alles in das UserControl mit dem aktuell gespeicherten Index(Zähler) zu schreiben. Du kannst ja durch die Control-Collection durch iterieren.

MfG cosmo
 
Zuletzt bearbeitet:
Zurück