viele wechselnde Steuer- und Auswahlelemente: wie programmieren ?

:) :)

Ja, darüber würde ich mich sehr freuen. Ich habe mal ein bischen rumprobiert. Es scheint möglich zu sein, 1) die Datenverbindung und das DataSet auf Form1 anzulegen und dann 2) nochmal einen DataAdapter auf die UserControl. Dabei wird bei mir automatisch auch eine OleDbConnection mit dem gleichen Namen (OleDbConnection1) dort mit angezeigt. Wenn ich dann dort ein DataSet mit dem Wizzard erzeuge und eine Table reinlade, ist diese auch auf dem ursprünglich in Form1 angelegten DataSet (so dass dies wohl doch die gleichen sind). So ganz habe ich das noch nicht verstanden - warum das dann die gleichen sind bzw wie ich entscheide wann es die gleichen sind und wann nicht ?

Aber wahrscheinlich muss ich mich noch ein bischen mehr damit beschäftigen. Leider habe ich noch kein gutes Buch über C#. Ich habe das von Andreas Kühnel (Visual C sharp) im Auge, aber vielleicht hast Du ja noch einen besseren Tip.

Ja, falls Du ein Beispiel uploaden könntest, würde ich mich sehr freuen.
 
Hallo Counterfeit

Ich habe noch eine weitere Frage:

Dazu zunächst das "Problem":

Wenn ich eine der UserControls nach meinen Wünschen angepasst habe - sagen wir mal UserControl5 (z.B. zur Anzeige und Eingabe zu Daten von einer Person), möchte ich dieses Design mehrfach für verschieden Personen einer Personengruppe auf Form1 anzeigen lassen (wobei ich vorher nicht genau weiß, wieviele Personen später in der Gruppe sein werden).
Ich müsste dann wohl pro neuer Person ein neues Panel auf die Form1 legen (wie geht das per Befehl zur Laufzeit) und dieses dann mit dem gleichen Muster der UserControl5 in diesem Beispiel bestücken, wobei die Personendaten dann eine andere DataRow des DataSet betreffen (jede Person hat ihre DataRow).

Kann ich UserControl5 einfach in jedes der neuen Panel laden und dann dort bei jedem dort angelegten Dateneingabefeld oder bei jeder Datenanzeige diese Daten pro Panel spezifisch für die jeweilige Person mit dem DataSet verknüpfen (wahrscheinlich muß ich einfach den DataRowZeiger jedesmal neu auf die DataRow (Auswahl nach der PersonenID) setzen, wenn das entsprechende Panel den Fokus erhält.

So, mein Hauptproblem im Moment hierbei ist, wie ich die zusätzlichen Panels zur Laufzeit erzeuge (und dann mit dem jeweiligen Designmuster befülle - aber das befüllen sollte nicht das Problem sein). Im Prinzip brauche ich auf Form1 einen Button, dessen Code - wenn angeklickt - eine neue Instanz von UserControl5 erzeugt und diese dann auf Form1 in einem neuen Panel unterhalb der anderen Panel(s) anzeigt.

Vielleicht gibt es ja zu dem geschilderten Problem wieder eine ganz geniale andere Lösung, so wie Deine letzte.
 
Zuletzt bearbeitet:
Also das mit den Datasets scheint richtig zu verlaufen, habe mich aber damit noch nie richtig beschäftigt. Du meinst TabPages? Oder wie soll ich das verstehen? Zum Thema Buch kann ich dir nicht viel sagen ;) hier in dem Forum gibts auch Buchtipps, ich habe nur ein Buch von C# was einfach "C# Magnum" heißt und wurde von Helma Spona geschrieben: zum Buch.
 
Vielleicht sind TabPages auch keine schlechte Idee.

Eigentlich hatte ich mir das so vorgestellt:

Wenn ich nur die Daten zu einer Person anzeigen lasse bzw Felder zur Dateneigabe zu dieser einen Person, dann müsste nur ein Panel mit einer UserControlDefinition angezeigt werden (so wie in Deinem Beispiel), z.B mit der UserControl4. Wenn ich aber jetzt eine Personengruppe habe, die alle eine UserControl4 PanelOberfläche brauchen und als Gruppe alle gleichzeitig angezeigt werden sollen, dann bräuchte ich noch weitere Panels (mit UserControl4) die dann für jede weitere Person, die zu der Gruppe dazukommen soll, z.B. auf Buttondruck sich unter dem letzten Panel anordnen.

Dann gibt es natürlich auch noch verschiedene Gruppen, also solche die dann ihre DatenAnzeige und Eingabe z.B. nach der Vorlage einer UserControl1 oder UserControl2 ... erhalten. Diese brauchen dann bei nur einer Person in der "Gruppe" auch wieder nur ein Panel auf Form1 (so wie in Deinem Beispiel) oder einer Form2.... Sollten aber später weitere Personen zu dieser Gruppe dazukommen, wäre es gut, wenn man eben auch hier diese Gruppe als ganzes anzeigen könnte, wobei aber eben für jede Person ein eigenes Panel mit den Datenfeldern angezeigt wird, so daß man Daten zur Gruppe schnell ohne großes umschalten zwischen den Personen eingeben kann. Wenn man nämlich alle Personen einzeln aufrufen muß, und sagen wir mal 6 Gruppen mit 3 bis 10 Personen hat, muß man sich aus dem Gesammtpool der Personen jeweils erst die richtige raussuchen (das kann dann bei 30 Personen den Arbeitsfluss stören, besonders wenn man oft zwischen den Personen einer Gruppe wechseln muss).
Deshalb wäre es gut, wenn man die ganze Gruppe zusammen auf Form1 anzeigen könnte, jede Person in ihrem "eigenen Panel" - aber eben pro Gruppe alle Panels nach der gleichen UserControlDefinition.

Klingt ziemlich kompliziert, es ist eigentlich vom Ideeansatz ganz einfach, nur schwierig genau zu formulieren. Ich hoffe ich habe die Idee jetzt einigermaßen verständlich aufgeschrieben.

Im Prinzip bräuchte ich einen Befehl, der mir per Code ein neues Panel erzeugt. Die Position könnte man nach der Position des vorherigen Panels ausrichten, dessen PositionsDaten in einer Variable gespeochert werden. Nach Anlegen des neuen Panels werden die PositionsDaten dieses Panels in die Variable übernommen, so daß sich dann ein ev. weiteres zu erzeugendes Panel daran ausrichten kann.
Dann müsste man die Panels auch wieder löschen können, wenn sie nicht mehr gebraucht werden, solange bis nur noch das allererste übrig bleibt.

Hoffentlich ist dies nicht zuviel Text, ist ja ganz schön viel geworden.:rolleyes:
 
noch eine kurze Frage:

was muss ich machen wenn ich mehrere Forms habe und von einer Form aus auf Variablen der anderen zugreifen zu können ?
Die Variable nur als public definieren (oder muss noch mehr als public definiert werden, z.B. die Form; oder muss die Form mit der Variable unter using mit angegeben werden (so wie bei Delphi?)

vielen Dank für alle Antworten im voraus.:)
 
Buch Frage ....

Hi flaavia,

ich habe das Buch von Andreas Kühnel. Ich kann es Dir nur empfehlen.
Wenn Du es Dir kaufen willst, kann ich Dir raten, noch 2-3 Monate zu warten.
Dann erscheint die Neuauflage.

Asterix ;-)
 
@ Saber

Sorry, aber eine genaue Antwort dazu habe ich nicht gefunden.
Die von Goldman am 18.11.03 gestellte Frage bzw Antwort dazu hilft mir nicht und wenn ich nach Variablen-Austausch-Zeugs in C#Net suche bekomme ich eine leere Menge als Antwort

Wohl dem der sich auskennt, aber genau für die, die dies nicht tun, sollte doch dieses Forum sein - oder?

@ AsterixAoH Danke für den Tip. habe das Buch gerade günstig bekommen können, scheint gut zu sein, aber meine Frage konnte ich damit noch nicht beantworten

Wahrscheinlich bin aber nur verblendet, dadurch dass ich früher mehr mit Delphi gearbeitet habe und sehe den Wald vor Bäumen nicht
 
Hi,
normaler weißte müsstest du die Variablen als public machen und am besten benutzt du get; set; damit kannst du sehr einfach von einer Form auf die andere Form Variable zugreifen.
 
Hallo


Ich habe immer noch nicht rausfinden können, wie ich von einem Deiner (Counterfeit) UserControls (wie in Deinem (Counterfeit) Vorschlag weiter oben, der mir übrigens sehr gut gefällt) auf ein Dataset zugreifen kann, welches auf Form1 instanziiert ist :(

Versuche, die OLEDataConnection und OLEDataAdapter und Dataset einfach nur als public zu definieren, reichen zumindest nicht aus, in den Eigenschaften eines DataGrid (welches in einem der UserControls liegt - nicht auf Form1) dieses Dataset unter Datasource auswählbar zu machen.

Und dies müsste es doch sein - oder ? Dort auswählbar, wenn es als public gilt - oder nicht?

Kann mir vieleicht jemand aus der Patsche helfen, wie ich diese Zugriffe ermöglichen kann (@ Saber: dazu ist leider im Forum nichts zu finden, es wäre sehr nett, wenn Du mir hierzu aus Deinem Erfahrungsschatz etwas sagen könntest :) - wiel so ganz trivial scheint dieses Problem doch nicht zu sein. ;)
 

Neue Beiträge

Zurück