Form in Panel beenden

  • VB.NET

Es gibt 13 Antworten in diesem Thema. Der letzte Beitrag () ist von thefiloe.

    Form in Panel beenden

    Huhu

    ich habe eine Liste mit Buttons und wenn man einen davon drückt öffnet sich in mein Panel die Form.
    So und im Panel wenn ich da in der Form ein Button drücke erscheint dahinter die Picturebox da die vorher nicht sichtbar ist.
    Nun möchte das wenn ich in der Liste ein anderen Button drücke das die Form ganz geschlossen wird. Denn im moment kann ich ein anderen Button in der liste drücke und wenn ich wieder auf dem selben gehe ist die Picturebox noch da. Also kurz und knapp, die Picturebox in der Form die im Panel angezeigt wird soll beim auswählen eines anderen Buttons aus der Liste verschwinden.
    Im moment benutze ich

    VB.NET-Quellcode

    1. Panel1.Controls.Clear()
    Um die alte Form zu löschen.

    Weiß einer wie ich die Form aber ganz schließen kann?
    Wenn ich dich richtig verstanden habe, hast du verschiedene Controls an dein Panel gebunden?
    Und diese Controls stellen deine View im aktuellen Kontext dar?

    Das hatte ich so gemacht und hatte dabei das Panel als Parent und die einzelnen Controls als Childs, und durch die jeweiligen Buttons einfach ein anderes anzeigen lassen.
    Ist eine Weile her, aber soweit ich weis hatte ich da nicht mit Panel.Controls.Clear gearbeitet. Wie es war weiß ich nicht mehr, ich kann daheim schauen (heute Abend oder am WE) ob ich den Code finde, ist eine Weile her und der PC hat seitdem einiges mitmachen müssen :whistling:
    müsste eig gehen wenn du alle childs rauslöscht. (aber nie gemacht wüsste auch nicht für was - wills auch nicht wissen). Ansonsten mal alle disposen?


    Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.
    Hmm was ist wenn ich das ganze mit einen Timer mache sodass die Picturebox nach z.B 10sek verschwindet.
    Braucht mein Programm dann länger zum laden wenn ich es starte? Denn ich bräuchte dann vllt so um die 10 Timer die zwar nicht alle gleichzeitig laufen.
    Nur mit Timer hab ich nicht wirklich erfahrung

    VB.NET-Quellcode

    1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    2. PictureBox1.Location = New Point(50, 75)
    3. PictureBox1.Visible = True
    4. Timer1.Start()
    5. End Sub


    Interval auf 1000 und ja weiter weiß ich nicht. Wo muss ich etwas eingeben was passieren soll wenn der Timer abgelaufen ist?

    thefiloe schrieb:

    Bitteee keine 10 Timer um nen paar Controls ausblenden X(



    Und wieso? Anders geht das ja anscheind nicht. Die Form lässt sich nicht ja nicht ganz im Panel schließen. Und ich brauche dann 10 weil es 10 verschiedene Form sind.

    Was ist denn daran dann so schlimm wenn ich so viele benutze?
    Eine andere Lösung gibt es ja anscheind nicht.
    a) brauchst du keinen timer
    b) reicht ein timer für alles. Du kannst das interval ändern usw. Außerdem Erben alle Controls von von System.Windows.Control. Setzte eine Variable mit Datentyp Control und weise dieser immer das zu schließende Control zu. Anschließend kannst du das im Timer Tick immer schließen. Einzige Frage ist nur wieso alle 10 sekunden oder was auch immer? Ist das wirklich notwendig. Was willst du mit dem ganzen Control löschen überhaupt bezwecken.


    Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.
    Oha dachte ich kann den Timer immer nur in eine Form benutzen, ja gut dann brauche ich nur einen Timer.
    Ich will das ein häkchen für paar sekunden hinter dem Button steht der ausgewählt wurde.
    Eigentlich war geplant das er solange bleibt bis sich die Form schließt, aber das ist ja anscheind nicht möglich.


    Edit by LaMa5:
    - Das vollständige Zitieren von Beiträgen ('Fullquotes'), die direkt über dem eigenen stehen, ist völlig unnötig und daher nicht erlaubt. (Boardregeln §4.3f)
    --> Vollzitat entfernt.

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

    Klar weiß man wie man dies schließt. Und ich habe dir immer für mich die best mögliche Antwort gegeben die ich für deine Infos erstellen konnte. Wenn du dich nicht ausdrücken kannst was du denn nun überhaupt willst kann ich nichts machen. Erst heißt es einfach nur Controls in einem Panel wegschmeißen. Hab ich gesagt wie. Aufeinmal kommt irgendwas 10 Sekunden wo du nie genau erklärt hast sondern nur gesagt hast du willst 10 timer machen. Da habe ich dir gesagt wie man es mit einem Timer macht. Was willst du mehr? Erkläre wie weit du bist. Was nicht geht oder was besser/schöner gehen soll (10 Timer für 10 Controls löschen --> sehr sehr sehr schlechter Programmierstil) und ich kann dir helfen. Was ich mir dabei nicht unterstellen lasse ist, dass ich dir nicht wirklich helfen will und es nur auf Beiträge abgesehen habe. Was soll das für einen Sinn haben in diesem Forum Beiträge zu sammeln? Aber das is tnunmal sehr oft die Einstellung von Neuzugängen hier ... verlangen perfekte Antworten am besten nur zum Reinkopieren ohne dabei auch nur im geringsten Infos zu geben. Dazu gehört auch einmal die richtigen Namen zu verwenden. Unter einer Form versteht man hier meistens ein Fenster (System.Windows.Forms.Form). Unter einem Steuerelement auf der Form versteht man ein Control. Man kann zwar Forms in einen Panel laden jedoch bezweifle ich, dass dies bei der Fall ist.


    Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.