Form in Variable

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Form in Variable

    Hallo,

    ich möchte mehrere Forms in Variablen tun.
    Grund: Ich habe zwei Form in der einen soll alles Angezeigt werden und in der anderen soll auch alles angezeigt werden UND das angezeigte verändert werden. Damit ich nicht alles doppelt machen muss,habe ich alle Pictureboxen bei beiden Forms gleich benannt und wollte das anzeigen so gestallten:

    VB.NET-Quellcode

    1. Function show(ByVal picturebox As PictureBox, ByVal number As Integer)
    2. Dim pictures As Drawing.Image
    3. Select Case number
    4. Case 0
    5. pictures = Billard_Tunier.My.Resources.Nr0
    6. Case 1
    7. pictures = Billard_Tunier.My.Resources.Nr1
    8. Case 2
    9. pictures = Billard_Tunier.My.Resources.Nr2
    10. Case 3
    11. pictures = Billard_Tunier.My.Resources.Nr3
    12. Case 4
    13. pictures = Billard_Tunier.My.Resources.Nr4
    14. Case 5
    15. pictures = Billard_Tunier.My.Resources.Nr5
    16. Case 6
    17. pictures = Billard_Tunier.My.Resources.Nr6
    18. Case 7
    19. pictures = Billard_Tunier.My.Resources.Nr7
    20. Case 8
    21. pictures = Billard_Tunier.My.Resources.Nr8
    22. Case 9
    23. pictures = Billard_Tunier.My.Resources.Nr9
    24. Case Else
    25. pictures = Billard_Tunier.My.Resources.Nr0
    26. End Select
    27. form1.picturebox.Image = pictures
    28. form2.picturebox.Image = pictures
    29. Return True
    30. End Function


    Als Fehler kommt immer:
    "picturebox" ist kein Member von "System.Windows.Forms.Form".
    An was kann es liegen? Wenn ich "form1" und die Zeile danach weglasse, wird es in Form1 so angezeigt wie es soll.

    Bin für jeden Tipp dankbar

    Mit freundlichen Grüßen
    h2oundco

    VB.NET-Quellcode

    1. Dim frm As New Form2
    2. frm.Picturebox1 = bla
    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!
    Du kannst Dir die ganze Select-Abfrage auch sparen indem Du die Resource nicht über pictures = Billard_Tunier.My.Resources.Nr0 holst, sondern über die ResourceManager.GetObject -Methode, z.B:

    VB.NET-Quellcode

    1. ' hole Bild Nr 0
    2. Dim image As Image = TryCast(My.Resources.ResourceManager.GetObject("Nr" & "0"), Image)
    3. ' prüfe auf Erfolg
    4. If image IsNot Nothing Then MessageBox.Show("Resource war OK") Else MessageBox.Show("Resourcename war falsch")