VB. Formen mit weiter
lima-city → Forum → Programmiersprachen → Basic
aktuelle position
array
bild
button
code
eigenschaft
entwicklung
form
frage
http
hundert
panel
sender
show
stehenden steuerelemente
system
tag
url
verschiedene programme
windows
-
Hallo, hab ne tag/frage">frage die mich seit tagen beschäftigt..
zwar gibt es ja verschiedene Programme, wo man weiter drücken kann/muss
hier ein schoenes bild:
http://www.mrgadget.de/wp-content/uploads/2009/01/iphone_firmware_2_2_1.jpg
wie wird sowas gemacht?
sind es mehrere formen, dass wenn man weiter klickt die 1 form geschlossen wird und die 2te form sich öffnet oder wie funktioniert es genau? :D -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Also wie genau die anderen das machen kann ich nicht sagen, aber ich würde das ganze so anstellen, dass ich schlicht ein Array von Elementen machen würde, welche dann beim Klick auf "Weiter" die visibility ändern.
Da du keine VB-Version spezifiziert hast, fällt es schwer, dafür Codebeispiele zu liefern. -
dome0910 schrieb: Hallo, hab ne frage die mich seit tagen beschäftigt..
zwar gibt es ja verschiedene Programme, wo man weiter drücken kann/muss
hier ein schoenes bild:
http://www.mrgadget.de/wp-content/uploads/2009/01/iphone_firmware_2_2_1.jpg
wie wird sowas gemacht?
sind es mehrere formen, dass wenn man weiter klickt die 1 form geschlossen wird und die 2te form sich öffnet oder wie funktioniert es genau? :D
Lass deiner Kreativität freien Lauf. Dazu gibt es hunderte Lösungsmöglichkeiten. Mal mehr, mal weniger elegant.
Da du erst anfängst dich mit VB 2008 zu beschäftigen, solltest du dir u.a. auch die zur Verfügung stehenden Steuerelemente in der Toolbox anschauen. Damit verschaffst du dir einen Überblick, was es so alles gibt und was so oberflächentechnisch mit Windows Forms möglich ist.
Ein vielleicht nicht so eleganter, aber der einfachste Weg, den ich mir vorstellen kann ist folgender:
- Lege eine neue Windows Form an
- Verwende ein TabControl in dieser Form
- Für jede Seite in deinem Assistenten legst du eine neue TabPage in dem TabControl an, die du jeweils nach deinen Wünschen gestaltest
- Dann brauchst du noch die Buttons "Weiter" und "Zurück"
- Wenn auf den Button "Weiter" gedrückt wird, so soll die nächste TabPage angezeigt werden
- Wenn auf den Button "Zurück" gedrückt wird, so soll die vorige TabPage angezeigt werden
- Setze die Größe der Überschriften der TabPages auf 0 (oder verdecke sie durch ein Panel oder so), damit diese verborgen werden
weitere Spielereien dazu fallen dir bestimmt noch ein. -
Da VB.Net keine Benutzersteuerelement-Felder mehr unterstützt, würde ich das so lösen. Du bastelst für jede "Seite" einen Panel, welche grundsätzlich alle die Eigenschaft "visible = false" haben. diese legst du in einem array ab. Dann definierst du eine variable, welche die aktuelle "position" beinhaltet. Beim laden der Form wird die visibility des ersten Panels auf true gesetzt. Beim klick auf weiter wird die variable in der du die aktuelle Position gespeichert hast um einen erhöht. Der Panel(anz -1) wird auf unsichtbar gesetzt, der Panel(anz) auf sichtbar. Bei Zurück geht das ganze halt umgekehrt - anz wird um 1 veringert, anz + 1 wird auf invisible gesetzt, anz auf visible. Bei mir (vb2010) funktioniert das einwandfrei.Public Class Form1 Dim anz As Long Dim panels(9) As Panel Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load panels(0) = Panel1 panels(1) = Panel2 ' ... panels(0).Visible = True End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnWeiter.Click anz = anz + 1 panels(anz - 1).Visible = False panels(anz).Visible = True End Sub End Class
Innerhalb der Panels kannst du nun deine Dokumente entwerfen, Textboxes positionieren, buttons, labels, images... Was auch immer du willst. Die Weiter- und Zurück-Buttons müssen ausserhalb der Panels stehen.
Wie tangoal schon richtig sagte: Es gibt hunderte Lösungen. Im Grunde kannst du auch ein zwei-dimensionales Array erstellen, in eine Dimension jeweils deine Objektgruppen referenzieren und das ganze dann via objekte(anz, i) wobei i dann mit einer for-next-schleife durchläuft. Sowas ist aber einerseits in der Entwicklung recht unübersichtlich und nicht so effizient, wie die arbeit mit den Panels.
Dann ist deine Idee mit den "form.hide" und "form.show" auch eine variante. Diese ist in der Entwicklung recht aufwändig und du hast am ende ggf. hunderte forms, was nicht sehr speicherschonend ist. -
nerdinator schrieb: Bei mir (vb2010) funktioniert das einwandfrei.
Hui, bist von VB6 gleich auf 2010 umgestiegen? :-)
Jupp, dein Vorschlag funktioniert auch sehr einfach. In VB2008 hatte ich das auch mal probiert (vor einem Jahr etwa). Dort war es relativ langsam auf meinem Rechner. Mit dem TabControl ging es dann schneller. Der ist eben optimiert für den Wechsel der Seiten.
Kann aber in der 2010er-Version schon besser gelöst sein mit der Visible-Eigenschaft, und somit akzeptabel laufen. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage