kostenloser Webspace werbefrei: lima-city


VB. Formen mit weiter

lima-cityForumProgrammiersprachenBasic

  1. Autor dieses Themas

    dome0910

    Kostenloser Webspace von dome0910

    dome0910 hat kostenlosen Webspace.

    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
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. 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.
  4. Autor dieses Themas

    dome0910

    Kostenloser Webspace von dome0910

    dome0910 hat kostenlosen Webspace.

    So ganz habe ich es jetzt nicht verstanden :D
    bin gerade dabei Vb zu lernen hab Visual Basic 2008 ..
    also ich würde es so anstellen (hab es noch nicht versucht)

    bei klick auf button

    Form2.Show ()
    und Me.Hide ()

    Lg, Soulstah :)
  5. 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.
  6. 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
    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.

    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.
  7. 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.
  8. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!