WinFuture-Forum.de: [c#] Forms Und Children - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

[c#] Forms Und Children Rekursiver Algorithmus um "Child-Forms" zu bekommen


#1 Mitglied ist offline   Daniel88 

  • Gruppe: aktive Mitglieder
  • Beiträge: 124
  • Beigetreten: 02. März 06
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Backnang
  • Interessen:Ich hab ICQ und MSN ;) gibts aber net öffentlich.<br />Ich interessiere mich für (fast) alles was mit PCs und so weiter zu tun hat.

geschrieben 20. Januar 2009 - 12:55

Hallo, ich könnte Hilfe gebrauchen.
Ich soll nen rekursiven Algorithmus schreiben, der ein Control übergeben bekommt und dann alle enthaltenen Controls in eine Liste schreibt und diese zurückgibt.

Ich hatte mir das ca so gedacht, dass ich an die Funktion das komplette Form übergebe, und dann schaue ob das Form Unter-Controls(Childs) hat und die dann in der Liste speicher und die Funktion mit dem Child aufrufe um an dem wieder schauen zu können ob es Childs hat ... usw ... rekursiv eben.

Jetzt mangelts aber an der Umsetzung im Code :-( :blush: ;)

Wäre schön wenn mir da jemand Tipps geben könnte, wie ich drauf komm was ich falsch mache.
Was ich bisher hab, häng ich mal als Visual Studio 2008 Solution in den Anhang.
Da is die "ControlTest.cs" in der diese Funktion implementiert werden soll und eine grafische Anwendung die auf einen Button-Klick die Funktion aufruft.
Macht aber absolut net das, was ich mir wünschen würde.

Angehängte Datei(en)


Dieser Beitrag wurde von Daniel88 bearbeitet: 21. Januar 2009 - 21:07

It´s nice to be important, but it´s more important to be nice.
(Einer der dollen Sätze von Scooter)
Take care to get what you like, or you will be forced to like what you get.
(nochmal so einer)
0

Anzeige



#2 Mitglied ist offline   gl4di4t0r 

  • Gruppe: aktive Mitglieder
  • Beiträge: 419
  • Beigetreten: 03. Oktober 04
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Bärlin

geschrieben 20. Januar 2009 - 15:39

Ich hab zwar schon länger nicht mehr programmiert, aber ich würde das ganze so machen:
Form übergeben -> Gucken ob Children vorhanden (HasChildren) -> foreach children in container name in liste speichern (das ganze als funktion) und das dann immer wieder aufrufen lassen wenn ein children children hat (haschildren)...somit sollte es in alle tiefen gehen.
Am besten guckst du auch mal wie visual studio die controls auf einer form anlegt, bzw wo die hinzugefügt werden, falls du das nicht weist. vielleicht mach ich mich später nochmal an iene umsetzung...

Eingefügtes Bild
Eingefügtes Bild
CCNA - Cisco Certified Network Associate
DropBox Online Sync-Speicher
0

#3 Mitglied ist offline   sibbl 

  • Gruppe: aktive Mitglieder
  • Beiträge: 377
  • Beigetreten: 30. Dezember 06
  • Reputation: 3
  • Wohnort:localhost

geschrieben 20. Januar 2009 - 16:43

schau evtl beim Debuggen was Form als Control für Eigenschaften hat. Dadurch kannste des dann einfacher überschauen.
0

#4 Mitglied ist offline   Daniel88 

  • Gruppe: aktive Mitglieder
  • Beiträge: 124
  • Beigetreten: 02. März 06
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Backnang
  • Interessen:Ich hab ICQ und MSN ;) gibts aber net öffentlich.<br />Ich interessiere mich für (fast) alles was mit PCs und so weiter zu tun hat.

geschrieben 21. Januar 2009 - 20:29

Sooo ich nochmal, erstmal danke für die schnelle Hilfe :-)

Ich habs jetzt so gelöst wie ich es im Anhang hochgeladen habe, könnte man sagen, dass das alle Controls sind, die in der Textbox angezeigt werden?

Die Funktionalität, dass ich des zuerst in die List<Control> speicher, dann an irgendne Ausgabe Funktion übergebe, is noch nich implementiert. Folgt noch*g*

EDIT:
Ich hab das mit der List jetzt implementiert ... Wenn ich den Button ein zweites Mal drücke, hätt ich gerne, dass der vorherige Text gelöscht wird.
Klingt einfach gell? Einfach
textBox1.Clear();
und schon sollt das Property Text auf "" sein.
Debugger zeigt das auch so an wie gewünscht, aber ich seh das so net in der Textbox.
Auch kann ich zwischen den einzelnen Einträgen nicht zweimal neue Zeile machen, also mit Escape-Sequenzen, klappt das so nicht ("\r\n\n")
 textbox1.Text += control.ToString() + "\r\n\n";

Angehängte Datei(en)


Dieser Beitrag wurde von Daniel88 bearbeitet: 24. Januar 2009 - 12:26

It´s nice to be important, but it´s more important to be nice.
(Einer der dollen Sätze von Scooter)
Take care to get what you like, or you will be forced to like what you get.
(nochmal so einer)
0

#5 Mitglied ist offline   Daniel88 

  • Gruppe: aktive Mitglieder
  • Beiträge: 124
  • Beigetreten: 02. März 06
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Backnang
  • Interessen:Ich hab ICQ und MSN ;) gibts aber net öffentlich.<br />Ich interessiere mich für (fast) alles was mit PCs und so weiter zu tun hat.

geschrieben 24. Januar 2009 - 12:29

*UPDATE*
Neuer Code
Sogar ein wenig kommentiert :rolleyes:

Angehängte Datei(en)


It´s nice to be important, but it´s more important to be nice.
(Einer der dollen Sätze von Scooter)
Take care to get what you like, or you will be forced to like what you get.
(nochmal so einer)
0

#6 Mitglied ist offline   Daniel88 

  • Gruppe: aktive Mitglieder
  • Beiträge: 124
  • Beigetreten: 02. März 06
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Backnang
  • Interessen:Ich hab ICQ und MSN ;) gibts aber net öffentlich.<br />Ich interessiere mich für (fast) alles was mit PCs und so weiter zu tun hat.

geschrieben 26. Januar 2009 - 13:14

Ich sehe 4 Downloads von meinem Code. Ist da niemand dabei der mir helfen kann oder helfen möchte?
Oder hab ich irgendwas vergessen zu sagen? Was falsch gemacht?
Bitte, ein wenig Hilfe :grin:
It´s nice to be important, but it´s more important to be nice.
(Einer der dollen Sätze von Scooter)
Take care to get what you like, or you will be forced to like what you get.
(nochmal so einer)
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0