Menu dynamisch erstellen und verstecken

  • VB.NET
  • .NET (FX) 3.0–3.5

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von NudelHolz.

    Menu dynamisch erstellen und verstecken

    Hallo :)

    Ich schriebe ein kleines Jump-Run Spiel und wollte jetzt ein Menu machen, welches sich dynamisch erstellt also als Laufzeit erst in der Form auftaucht.

    Das Aufrufen und Erstellen klappt wunderbar, nur das entfernen nicht.

    Wie ich es Erstelle:

    VB.NET-Quellcode

    1. Dim forbutton As New Button
    2. With forbutton
    3. .Text = "Fortfahren"
    4. .Name = "b_fortf"
    5. .Width = 455
    6. .Height = 66
    7. .Left = (ClientSize.Width - forbutton.Width) \ 2
    8. .Top = 253
    9. .FlatStyle = FlatStyle.Flat
    10. .BackColor = Color.Silver
    11. .ForeColor = Color.Black
    12. End With
    13. Me.Controls.Add(forbutton) ' Fortsetzen Button
    14. AddHandler forbutton.Click, AddressOf forbutton_click



    So und jetzt möchte ich gerne nur den Button wieder entfernen, me.controls.clear oder remove funktioniert anscheinend nicht oder ich mache was falsch.

    VB.NET-Quellcode

    1. Private Sub forbutton_click(ByVal sender As System.Object, ByVal e As System.EventArgs)
    2. Dim btn As Object = "forbutton"
    3. Me.Controls.Remove(btn)
    4. End Sub
    5. '''''ODER
    6. me.controls.remove(forbutton)
    7. ' Aber der ist ja noch nicht bei der Laufzeit erstellt.



    Ich bin gerade ein bisschen am verzweifeln..
    Und direkt die Komponenten aus dem Werkzeugkasten einfügen will ich nicht machen, weil jedes level eine neue Form ist.


    Bitte helft mir :( :D


    MfG

    Releases:
    IceTea | QR-Converter by NudelHolz - einfach Text & URL zu QR Konvertieren.
    Hey,

    denk mal scharf nach, was Du hier falsch machst:

    VB.NET-Quellcode

    1. Dim btn As Object = "forbutton"
    2. Me.Controls.Remove(btn)


    Schau Dir mal an, welchen Parameter die Remove-Methode entgegennimmt. Sollte das Programm so kompilieren, dann OPTION STRICT ON.
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o
    @SpaceyX Ja ich weiß war auch nur ne idee

    @nafets3646 ich weiß dass man das so macht aber es geht auch so. das spiel funktioniert schon und läuft wunderbar nur leider wie gesagt das menu nicht.

    Bitte helfen und nicht kommentieren nafets

    Releases:
    IceTea | QR-Converter by NudelHolz - einfach Text & URL zu QR Konvertieren.

    NudelHolz schrieb:

    VB.NET-Quellcode

    1. Dim forbutton As New Button
    Nimm die Deklaration in die Klasse, die Instanziierung in die Prozedur.

    Visual Basic-Quellcode

    1. Dim forbutton As Button
    2. Sub xxx()
    3. forbutton = New Button
    4. Me.Controls.Add(forbutton)
    5. End Sub
    6. Sub yyy()
    7. Me.Controls.Remove(forbutton)
    8. End Sub
    Außerdem wäre es gescheiter, wenn Du den Button nicht dynamisch generierst, sondern ihn mit .Visible = True | Hide sichtbar und unsichtbar machst.
    Da hast Du wesentlich weniger Aufwand und Ärger.
    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!

    NudelHolz schrieb:

    ich weiß dass man das so macht aber es geht auch so. das spiel funktioniert schon und läuft wunderbar nur leider wie gesagt das menu nicht.

    Bitte helfen und nicht kommentieren nafets

    Gute Ausrede, aber anscheinend weißt Du es nicht, denn sonst wärst Du gar nicht erst auf die Idee gekommen... Ich kann alles so schreiben, dass es auch geht, nur ist das dann manchmal vielleicht kompletter Bullshit.
    Spiele mit Controls gehen gar nicht und Du hast damit überhaupt keine Flexiblität. Warum sollte wir bei was helfen, das keinen Sinn macht?
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!: