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.

    Häufig von mir verwendete Abkürzungen: CEs = control elements (Labels, Buttons, DGVs, ...) und tDS (typisiertes DataSet)
    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht in den Spekulatiusmodus gehen.

    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“ ()