Laden...

Einstellungsdialog (framesetlike)

Erstellt von Tomot vor 15 Jahren Letzter Beitrag vor 11 Jahren 7.786 Views
Tomot Themenstarter:in
691 Beiträge seit 2007
vor 15 Jahren
Einstellungsdialog (framesetlike)

Enstehung:
Ich wollte mir einen Einstellungsdialog verwenden, da ich diese bequemer als PropertyGrids empfinde. Nach erfolgloser Suche auf CodeProject dachte ich mir, such nichts fertig, bastel doch einfach selber was. Nachdem ich die erste Version lauffähig hatte, wurde ich auf diese Threads aufmerksam, die ein ähnliches Ziel auf anderem Weg einschlugen:
[FAQ] Mit Forms eine Art Frameset einer Website nachbauen?
und wohl auch TabControl als Basis für Assistenten und sowas

Trotzdem stellte ich mein Control in eine soweit fertige Version, die ich für akzeptabel hielt und sie euch nicht vorenthalten mag.

Beschreibung:
Mit der Benutzung dieser Klasse ist es möglich, sich einen Einstellungsdialog zu basteln, in dem die einzelnen Sektionen nicht über Reiter eines Tabcontrols, sondern über Icons eines Listviews mit jeweils einem Panel angezeigt werden.
Dabei lassen sich Panels auf einer Form mit dem Windows Designer gestalten, ohne das man sie zur Designzeit übereinander liegen haben muss.

Mankos/ mögliche Verbesserungen:* Die hinzugefügten Panels liegen nicht in der Control Collection dieser Klasse, sondern in der Form in der sie erstellt werden. D.h. bei der Anzeige wird das anzuzeigene Panel über dem Gesamtpanel platziert. Dadurch lässt sich jedoch ein Hintergrund einstellen. *Das Positionieren und das Ändern der Panel.Visible Properties frisst Performance, und es lassen sich elegantere Lösungen finden.

Verwendung der Klasse:
Der Code kann frei verwendet werden, sofern niemand den Code als seinen eigenen ausgibt. (sicherlich verständlich 😉 ) Bei einer tatsächlichen Verwendung hätte ich interessehalber gerne eine PM.

Einsatzbeispiel:


// Man nehme eine Form, eine ImageList und eine handvoll Panels

 public partial class frmManager : Form
   {


      settingsPanel _pan;

      public frmManager()
      {
         InitializeComponent();
         this._pan = new settingsPanel(this.imageList1, 550, 400);
      }

      private void frmManager_Load(object sender, EventArgs e)
      {
         this.Size = new Size(560, 430);
         this._pan.addPanel("allgemein", this.panelAllgemein, "Allgemein", "r.jpg");
         this._pan.addPanel("shortcuts", this.panelShortcut, "Shortcuts", "g.jpg");
         this._pan.addPanel("about", this.panelAbout, "About me", "b.jpg");
         this._pan.setDefaultPanel("allgemein");
         this._pan.BackColor = System.Drawing.Color.SeaGreen;
         this.Controls.Add(this._pan);
      }

frameset, einstellungen, settingsPanel, Tomot

mit freundlichen Grüßen,
Tomot

Projekte: www.gesellschaftsspieler-gesucht.de

Tomot Themenstarter:in
691 Beiträge seit 2007
vor 15 Jahren

Und noch zwei Bilder: (ein Mod kann die ja eventuell komplett in den ersten Post verschieben)

Im Windows Designer

mit freundlichen Grüßen,
Tomot

Projekte: www.gesellschaftsspieler-gesucht.de

Tomot Themenstarter:in
691 Beiträge seit 2007
vor 15 Jahren

Und in einer Form eingebunden:

mit freundlichen Grüßen,
Tomot

Projekte: www.gesellschaftsspieler-gesucht.de

J
1 Beiträge seit 2012
vor 11 Jahren

Hi Tomot.

Gibt es hierfür ein Update?
Wäre es möglich, das Beispiel mit Form als Download anzubieten? 😉

Bin mir noch nicht im Klaren, wie ich das am Besten umsetzen möchte ....