GUI in C#, J#

Tagchen zusammen,

vorweg gesagt, ich komme aus Java und bin es gewohnt meine Panels auf das Hauptfenster bzw andere Panels zu legen und wieder zu entfernen.

Nun wollte ich mal sehen, ob und wie das im Vstudio geht. Leider nicht ganz so einfach wie in Java (wie es scheint).

Deshalb meine Frage:

  1. Weiss jemand ein paar WebSeiten, wo obiges Prinzip anhand eines einfachen BEispiels erläutert wird???
  2. Kann mir das jemand anhand eines einfachst gehaltenen Beispiels erklären

MfG
Passer
PS.
Was auch möglich wäre und auch ganz nett, wenn jemand ein Beispielprojekt hätte, bei dem BEispielsweise ein Hauptfenster und zwei Panels (jeweils separat) und nach einer Aktion, wie zum beispiel einem klick die Panels auf diesem Fenster wechseln.
Der Rest sollte trivial sein.

MfG
Passer

Hallo
Ich habe mich mal mit etwas Ähnlichem beschäftigt:
In meiner Anwendung habe ich das Hauptfenster in zwei Teile unterteilt. Links, ca. ein Drittel des Fensters ist ein Baum (TreeView) und die rechten zwei Drittel zeigen dynamischen Inhalt je nachdem, welcher Ordner (Node) des Baums ausgewäht ist. Implementiert habe ich dies mit Hilfe von User Controls (in Delphi Frames)

Du erstellst ein solches User Control, das in der Anwendung wie eine sonstige visuelle Komponente (Control) behandelt wird, ziehst es im Designer auf die Form und blendest es mit der visible-Eigenschaft dynamiasch ein/aus.

Ein Beispiel könnte ich allerdings nur in C# liefern.

Ich habe auch eine Reihe cooler XP-Style-Controls als Freeware gefunden, weil die native Controls leider nicht grad der Hammer sind.

Ein Beispiel könnte ich allerdings nur in C# liefern.

Also wenn das nicht allzu umfangreich ist (mir würden wie gesagt zwei Panels, die sich auf einem Hautptframe abwechseln wahrscheinlich reichen, da der Rest trivial sein sollte).
Ob nun C# oder J# sollte egal sien, das Prinzip st (hoffentlich) jeweils das gleiche.

Ich habe auch eine Reihe cooler XP-Style-Controls als Freeware
gefunden, weil die native Controls leider nicht grad der
Hammer sind.

Ich kann zwar mit dieser Begrifflichkeit im Moment nicht viel anfangen, aber vielleicht fällt der Groschen, wenn ichs sehe; => einen Blick würd ich gern mal drauf werfen.

MfG
Passer
PS.
Dank schonmal, vor allem für die fixe Antwort

Ja dein Stichwort ist ‚User Controls‘

Dürfte allerdings ein bisschen schwierig sein, die Schritte in der IDE zu beschreiben…

Von der Logik her:

  1. User Control erstellen (über Projekt-Menü)
  2. User Control in die Toolbar aufnemhen (mit rechter Maustaste)
  3. User Control wie ein Button oder sowas auf die Form ziehen
  4. User Control im Code ein/ausblenden

Dürfte allerdings ein bisschen schwierig sein, die Schritte in
der IDE zu beschreiben…

Von der Logik her:

  1. User Control erstellen (über Projekt-Menü)

Ok, klappt, habe dem Projekt einen Ordner für die User Controls spendiert und dort eine User Control erstellt und da mal testweise einen button draufgelegt

  1. User Control in die Toolbar aufnemhen (mit rechter
    Maustaste)

Das klappt irgendwie nicht. Bei einem rechtsklick auf das UserControl1.jsl bekomme ich die Optionen |Offnen|Öffnen mit|Code anzeigen|Designer anzeigen|Ausschneiden|kopieren|Löschen|Umbenennen|Eigenschaften|.
Wenn ich das UserControl1.jsl einfach auf die Toolbar ziehe, so erscheint dieses dort zwar, leider allerdings in „Geisterschrift“ sprich nicht aktivierbar.

Kannst Du mir an dieser Stelle nochmal einen Tipp geben???
Ich google derweil mal ein bisschen.

  1. User Control wie ein Button oder sowas auf die Form ziehen
  2. User Control im Code ein/ausblenden

MfG
Christoph

Kannst Du mir an dieser Stelle nochmal einen Tipp geben???
Ich google derweil mal ein bisschen.

Salü
Wenn es in der gleichen EXE bzw. Assembly ist, musst Du diese comilieren, d.h. alles builden. Danach wählst Du das eigene EXE-File aus Resource, die durchsucht werden soll…

Dankschö, habs inzwischen hinbekommen:wink:

Hab da noch eine kleine OT-Frage, der ich kein eigenes Thema spendieren möchte…
gibt es unter VS eigentlich auch so feine Layoutmanager, wie unter Java (also Borderlayout gibt es, das macht allerdings nur bei Panels Sinn, was ich suche wäre so etwas, wie FlowLayout)

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hab da noch eine kleine OT-Frage, der ich kein eigenes Thema
spendieren möchte…
gibt es unter VS eigentlich auch so feine Layoutmanager, wie
unter Java (also Borderlayout gibt es, das macht allerdings
nur bei Panels Sinn, was ich suche wäre so etwas, wie
FlowLayout)

Wenn’s den Aufwand wert ist, kannst Du mal probieren, mir zu erklären, was der im Java genau macht…

Mit dem Flowlayout Manager werden die Elemente, die einem Panel hinzugefügt werden nacheinander angeordnet. Der ElementeAbstand ergibt sich aus der Anzahl Pixel, die man dem Layout gibt (Flowlayout(5,5) wäre bspw solch ein Layout mit horizontal und vertikalabstand von 5 pixeln).
Hinzu gibt es noch das mies zu handhabende gridbaglayout, mit welchem man elemente wie in einer tabelle positionieren kann.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hi!

Von Haus aus gibt es keine auswählbaren LayoutManager wie in Java.

Dafür kann man für alle Controls angeben, ob sie an den Rändern des Vatercontrols verankert sind („Anchor“ Property) und damit z.B. mitwachsen, wenn das Vatercontrol vergrößert wird.

Außerdem gibt es noch das Property „Dock“, das entspricht vom Verhalten wohl am ehesten dem BorderLayoutManager, man kann also Controls an die Ränder des Vatercontrols packen.

Es gibt aber die entsprehenden Layout-Funktionen bei Container-Controls, mit deren Hilfe Du Dir ganz leicht selber z.B. ein FlowLayoutPanel erstellen kannst.

Gruß,
Martin

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]