Form öffnen aber in der alten weitermachen

  • VB.NET

Es gibt 17 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Form öffnen aber in der alten weitermachen

    wie schaffe ich es eine Form zu öffnen, aber in der alten Form weiterzumachen und dann später wieder zu schließen?

    Beispiel: load Fenster mit Balken einblenden und wieder schließen.
    Meinst du das du eine Firm in der anderen hast ?
    Sieh dir das mal an

    VB.NET-Quellcode

    1. Dim formsec As New Form2
    2. Me.IsMdiContainer = True
    3. formsec.MdiParent = Me
    4. formsec.Show()

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Gonger96“ ()

    @Gonger96

    Eigentlich müsstest Du es wissen, wie man richtig Formen instanziert.

    VB.NET-Quellcode

    1. Public Class Form2
    2. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    3. Dim f2 As New Form2
    4. f2.Show()
    5. End Sub
    6. End Class


    @TE. Eine Form mit einem "Loading-Balken" drauf einblenden, der eigentlich gar nichts macht, ausser versuchen, wichtig auszusehen, ist wohl überflüssig. Nur für den Fall, dass das Dein Vorhaben ist.
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o

    SpaceyX schrieb:

    .....
    @TE. Eine Form mit einem "Loading-Balken" drauf einblenden, der eigentlich gar nichts macht, ausser versuchen, wichtig auszusehen, ist wohl überflüssig. Nur für den Fall, dass das Dein Vorhaben ist.
    So unsinnig ist das nicht....man ließt z.B. Daten vom SQL....wenn der User keine Form "Loading-Balken" angezeigt bekommt, verspürt er den Drang weiterzumachen, weil er nicht sieht, dass noch gearbeitet wird....
    Ich glaub, so meint er das. Dann pack halt ne ProgressBar in einen ToolStrip, dafür ist das Ding da (glaub ich, hab ich nie benutzt). Und zeig den tatsächlichen Fortschritt, nicht einfach irgendwas.
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o
    Oh, da gibts schon einige Möglichkeiten, dass der weiter läuft. Aber die Beste Möglichkeit ist, Du schlägst Dir Dein Tralala aus dem Kopf und machst eine elegante Lösung.
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o
    Nimm Dir einen ToolStrip und pack da die ProgressBar rein. Wenn der User z. B. nicht weiterarbeiten soll, solange der Ladevorgang läuft, dann Disable z. B. die Controls auf der Form. Oder schreib einfach auf ein Label, dass Daten geladen werden usw., usw.
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o

    VB.NET-Quellcode

    1. Public Class form1
    2. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    3. form2.show()
    4. Me.Opacity = 0
    5. Timer1.Start()
    6. End Sub
    7. Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    8. Timer1.Stop()
    9. MsgBox("Right")
    10. End Sub
    11. End Class

    Me.Opacity = man kann das Programm nich sehen obwohl es geöffnet ist
    Du kannst dann z.B. ein Timer einfügen der startet wenn du den Button drückst der deine Form1 auch unsichtbar macht. Die Form2 wird gezeigt aber der Timer in Form1 läuft gemütlich zu Ende und die msgbox taucht auf. Das kannst du natürlich auch mit ganz anderen Sachen machen.
    Es wird aber denoch in Taskleiste die Form1 angezeigt. Das ganzt du dadurch verhindern.

    VB.NET-Quellcode

    1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
    2. Me.ShowInTaskbar = False
    3. Me.ShowIcon = False

    Me.ShowIcon = False = Das Icon wird nicht in der Taskleiste angezeigt.
    Me.ShowInTaskbar = False = Das Programm wird in der Taskleiste nicht angezeigt.
    Ich habe das jetzt in einen Button gemacht aber du kannst auch ganz ander Sachen benutzen.
    LG
    Sucht mal nach modalen und nicht modalen Dialogen.
    Dies ist der korrektre Aufruf für einen nicht modalen Dialog:

    VB.NET-Quellcode

    1. Private dlg As Form2
    2. Private Sub xxx()
    3. If dlg Is Nothing OrElse dlg.IsDisposed Then
    4. dlg = New Form2
    5. End If
    6. dlg.Show() ' Dialog kann hinter das Hauptfenster geklickt werden
    7. ' oder
    8. 'dlg.Show(Me) ' Dialog kann nicht hinter das Hauptfenster geklickt werden
    9. End Sub
    Der modale ist da etwas einfacher:

    VB.NET-Quellcode

    1. Private Sub yyy()
    2. Using dlg As New Form2
    3. dlg.ShowDialog()
    4. End Using
    5. End Sub
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!