Arrays von Steuerelementen

  • VB.NET

Es gibt 23 Antworten in diesem Thema. Der letzte Beitrag () ist von gerolz.

    @gerolz: Also, zigfach den Startpost zu editieren und dann häppchenweise die Infos zu liefern, die dann auch noch inhaltlich/syntaktisch falsch sind, beendet an dieser Stelle auch meine Kooperation. Das ist mir zu dreist.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.

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

    VaporiZed schrieb:

    zigfach den Startpost zu editieren
    Da hat mich irgend einer mit Blindheit geschlagen, jetzt, wo Du das sagst, fällt es mit auch auf.
    @gerolz Ende Gelände, mach Dein Zeugs ohne mich weiter.
    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!
    jetzt, nach dem Hinweis auf editiertem Erst-Post binnich glaub drauf gekommen - (hab ja nicht geahnt, dass du deine Klick-Sub abwegigerweise ohne Argumente gebastelt hattest):
    probierma so:

    gerolz schrieb:

    VB.NET-Quellcode

    1. '...
    2. AddHandler .MouseUp, AddressOf Klick
    3. End With
    4. Next
    5. '...
    6. sub Klick(sender as object, e as eventargs)
    7. beep
    8. end sub


    ErfinderDesRades schrieb:

    Der Sender, der in Klick ankommt - das ist die geklickte Picturebox - kannste mit Array.Indexof(Bild, Directcast(sender,PictureBox)) den Index of finden.

    Liebe Freunde,
    jetzt hat es geklappt, vielen Dank für Eure Mühe!
    Der Ahnungslose

    Der funktionierende Code in VB 2015:
    1) Das Array definieren. Hier 81 Pictureboxes namens 'Bild'

    VB.NET-Quellcode

    1. Public Class Form1
    2. Dim Bild(81) As PictureBox


    2) Eigenschaften des Arrays definieren

    VB.NET-Quellcode

    1. Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
    2. For i = 1 To 81
    3. Bild(i) = New PictureBox
    4. by = Int((i - 1) / 9)
    5. bx = i - by * 9
    6. With Bild(i)
    7. .Parent = Me
    8. .Name = "Puzzle" & i
    9. .Parent.Controls.Add(Bild(i))
    10. .TabIndex = i
    11. .Width = Kante
    12. .Height = Kante
    13. .Top = (by + 1) * Kante
    14. .Left = bx * Kante
    15. .BackColor = Color.AliceBlue
    16. .SizeMode = PictureBoxSizeMode.StretchImage
    17. .Visible = True
    18. .BorderStyle = BorderStyle.FixedSingle
    19. ' Sub "Klick" Aufrufen
    20. AddHandler .MouseUp, AddressOf Klick
    21. End With
    22. Next
    23. End Sub


    3) Subroutine "Klick" ausführen: liefert den Index des angeklickte Elements

    VB.NET-Quellcode

    1. Private Sub Klick(sender As Object, ByVal e As MouseEventArgs)
    2. AIndex = Array.IndexOf(Bild, DirectCast(sender, PictureBox))
    3. End Sub

    Dieser Beitrag wurde bereits 9 mal editiert, zuletzt von „gerolz“ ()