Delphi-Forum.de Delphi-Library.de
C-Sharp-Forum.de C-Sharp-Library.de
Registrieren Login Suche Hilfe Sitemap
[3.5] Mehrseitiges Formular durch Panels realisieren
spacer
Autor Nachricht
mannyk
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star

Beiträge: 35
Dabei seit: 06.02.2009



BeitragVerfasst: Mo 01.03.10 21:54 
.NET Version: 3.5
Antworten mit Zitat Beitrag melden
Hallo, ich habe eine grundlegende Frage zu Windows Forms.

Ich möchte eine Applikation schreiben, die mehrere, unabhängige Formular-Seiten hat. Leider ist die Realisierung durch Panels nicht wirklich einfach (da es in Visual Studio meines Wissens keinen Befehl gibt, ein Panel auszublenden oder zwischen verschiedenen Panels zu navigieren).

Deshalb meine Frage: Wie kann ich ein mehrseitiges Formular am einfachstes erstellen?

Ich kenne sonst nur ein TabPane mit verschiedenen Tabs, was ich optisch aber nicht sehr schön finde.

Danke für eure Antworten,
mannyk
Private Nachricht sendenPosting in privater Nachricht zitieren
Greenberet
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star

Beiträge: 217
Erhaltene Danke: 1
Dabei seit: 27.07.2007


Win XP, Ubuntu Jaunty, Debian Lenny
C# (VS 2008), C++ (VS 2008/GCC), PAWN(Notepad++), Java( NetBeans)
BeitragVerfasst: Mo 01.03.10 22:07  Antworten mit Zitat Beitrag melden
Du erstellst dir einfach eine Array mit all einen Panels. Jedes Panel hat dann eine ID ( ArrayIndex/Seitennummer )
Die Panels haben natürlich die gleichen Dimensionen und Startpositionen (sonst wirds nicht gut ausschauen)
Seite 1 = Array[0]

hier mal ein mehr oder weniger Pseudocode zum aktivieren eines bestimmten Panels

ausblenden C#-Quelltext markieren
1:
2:
3:
4:
5:
6:
7:
8:
9:
int _currentPanelIndex = 0; // private field

void ActivatePanel( int index )
{
for( int i = 0; i < array.Length; i++ )
array[i].Visible = (i == index);
_currentPanelIndex = index;

}


Der code setzt nun jedes Panel auf nicht sichtbar, und nur das eine was angezeigt wird soll auf sichtbar.
Private Nachricht sendenPosting in privater Nachricht zitieren
mannyk
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star

(Threadstarter)

Beiträge: 35
Dabei seit: 06.02.2009



BeitragVerfasst: Mo 01.03.10 22:49  Antworten mit Zitat Beitrag melden
Danke für den Tipp!

Allerdings finde ich das weitaus größere Problem, wenn ich mit den Panels die Oberfläche (zur Designzeit) designe.
Dafür muss ich alle nicht aktuellen Panels wegschieben, bis nur noch das aktuelle da ist, wenn ich dann wieder alle pixelgenau hinschieben muss, usw.

Ich habe das Problem also eigentlich nur beim Designen und nicht bei der Programmierung an sich.

Wenn ich dann die Panes aufs Pixel genau übereinander schiebe, wird dann zusätzlich beim Testen das Pane gar nicht mehr angezeigt, weil dieses auf einmal in ein anderes Pane verschachtelt wurde, was nicht sichtbar ist. Einen Kniff diese Verschachtelung rückgängig zu machen, habe ich bis jetzt noch nicht gefunden.

Ich denke, dass die Panes deshalb nicht dafür gemacht sind. Eine andere Möglichkeit wäre ein Tab Control zu nehmen und die Tabs mit einem anderen Control zu verbergen (weil ich die nicht haben will) und zwischen den verschiedenen TabPanes mit anderen Buttons zu navigieren - das wär dann aber schon fast ein Hack.

Deshalb suche ich nach wie vor nach einer eleganten Möglichkeit ein dynamisches Formular zu programmieren...

Danke und lg,
mannyk
Private Nachricht sendenPosting in privater Nachricht zitieren
Greenberet
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star

Beiträge: 217
Erhaltene Danke: 1
Dabei seit: 27.07.2007


Win XP, Ubuntu Jaunty, Debian Lenny
C# (VS 2008), C++ (VS 2008/GCC), PAWN(Notepad++), Java( NetBeans)
BeitragVerfasst: Di 02.03.10 00:55  Antworten mit Zitat Beitrag melden
Erstell die Panels doch einfach im Code?
Private Nachricht sendenPosting in privater Nachricht zitieren
mannyk
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star

(Threadstarter)

Beiträge: 35
Dabei seit: 06.02.2009



BeitragVerfasst: Di 02.03.10 02:49  Antworten mit Zitat Beitrag melden
Dann muss ich aber auch die ganzen controls dynamisch erstellen, anstatt sie im Designer zusammenzuklicken.
Private Nachricht sendenPosting in privater Nachricht zitieren
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starhalf offtopic star

Beiträge: 2015
Erhaltene Danke: 2
Dabei seit: 24.08.2006
Wohnort: Berlin

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Di 02.03.10 09:41  Antworten mit Zitat Beitrag melden
Nimm doch stattdessen UserControl: Diese können einzeln im Designer "zusammengeklickt" werden (dieser abwertende Begriff zeigt schon, wieviel Intelligenz Eigeninitiative vom Entwicker erwartet wird) und je nach Bedarf in das Formular eingebunden oder ausgeblendet werden. Jürgen
Private Nachricht sendenPosting in privater Nachricht zitieren Webseite dieses Mitglieds besuchen
mannyk
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star

(Threadstarter)

Beiträge: 35
Dabei seit: 06.02.2009



BeitragVerfasst: Di 09.03.10 21:08  Antworten mit Zitat Beitrag melden
Danke, werde ich mir anschauen.

Mit Zusammenklicken, meine ich salopp einen GUI-Builder zu gebrauchen. Und da meines Erachtens VS einen der besten Builder hat, möchte ich diesen eben auch gerne verwenden.
LG
Private Nachricht sendenPosting in privater Nachricht zitieren
Werbung ausblenden? Dann registriere Dich kostenlos. Weitere Gründe für eine Registrierung.


Werbung ausblenden? Dann registriere Dich kostenlos. Weitere Gründe für eine Registrierung.
Beiträge vom vorherigen Thema anzeigen:   
home home