Benutzer soll Form erstellen

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von faxe1008.

    Benutzer soll Form erstellen

    Hallo Zusammen,

    in dem komfortablen Visual-Studio kann sich der Entwickler die Form einfach zusammenklicken.
    Das Selbe soll ähnlich auch in meinem Programm möglich werden.

    Eine Form soll angezeigt werden, die der Benutzer meines Programms selbst zusammenklickt.
    Hier soll der Anwender jedoch nur "einfache" Steuerelement auswählen:
    Picture Box, Label, TextBox, RichTextBox
    Zwei Buttons (OK & Abbrechen) sollen jedoch statisch immer eingeblendet sein.

    Wie kann ich so etwas verwirklichen?

    Gruß,
    Hitch
    @Hitch: Bist Du tatsächlich in der Lage, solch ein Projekt in Angriff zu nehmen?
    Über welche Programmier- und .NET-Programmier-Erfahrungen verfügst Du?
    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!
    Soo ungefähr könnte es gehen:

    Spoiler anzeigen

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private formlist As New List(Of Control)
    3. Private Sub update()
    4. ListBox1.Items.Clear()
    5. For Each c As Control In formlist
    6. ListBox1.Items.Add(c.Text & " (" & c.ToString & ")")
    7. Next
    8. End Sub
    9. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    10. Dim cntrl As New Button
    11. cntrl.Text = InputBox("Geben Sie den Titel ein!")
    12. cntrl.Name = "cntrl" & (formlist.Count + 1).ToString
    13. formlist.Add(cntrl)
    14. Update()
    15. End Sub
    16. Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
    17. End Sub
    18. Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    19. Dim cntrl As New Label
    20. cntrl.Text = InputBox("Geben Sie den Titel ein!")
    21. cntrl.Name = "cntrl" & (formlist.Count + 1).ToString
    22. formlist.Add(cntrl)
    23. Update()
    24. End Sub
    25. Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
    26. Dim f As New Form
    27. Dim layout As New FlowLayoutPanel
    28. For Each c As Control In formlist
    29. layout.Controls.Add(c)
    30. Next
    31. Dim ok, cancel As New Button
    32. ok.Text = "Ok"
    33. cancel.Text = "Abbrechen"
    34. layout.Controls.Add(ok)
    35. layout.Controls.Add(cancel)
    36. f.Controls.Add(layout)
    37. f.ShowDialog()
    38. End Sub
    39. End Class




    Im Designer sieht es bei mir so aus:

    So ohne weiteres kannst du die Controls per Freihand verschieben, aber du kannst die Location der Controls verändern

    Hoffe ich konnte dir Helfen
    Lual

    Edit:
    Bitte kopier es nicht. Ist nur mal als Beispiel gedacht, damit du weist wie du es angehen möchtest. Falls du etwas nicht verstehst kannst du ja gerne nachfragen!!!