Visual Basic .net: Steuerelement-array

  • (Warum gibts hier kein VB-Präfix? ist das zu peinlich??)

    IN VB6 war das schön, da konnte man zb. 10 Textboxes machen und durch name und zahl darstellen textbox(i), 0<=i<=9

    aber in VB.net gibts das nicht mehr *heul*. hat sich damit schon jemand beschäftigt oder seids ihr eh alle nur C-Leute ;)

  • http://www.microsoft.com/germany/msdn/l…n.mspx?mfr=true

    ' Code in einem Windows Forms-Codemodul (Form1)
    '
    Public Class Form1
    Inherits System.Windows.Forms.Form


    Private btnArray(9) As Button ' Dies wird unser Control-Array!


    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    ' 10 Buttons neu erzeugen
    For i As Integer = 0 To 9

    ' Neuen Button erzeugen
    btnArray(i) = New Button

    ' Den erzeugten Button verwenden:
    With btnArray(i)

    ' Parent festlegen und Controls-Collection erweitern
    .Parent = Me
    .Parent.Controls.Add(btnArray(i))

    ' Verwaltungsinformationen zuweisen
    .Name = "Button" & CStr(i)
    .TabIndex = i

    ' Darstellung: Beschriften und positionieren
    .Text = "Button(" & CStr(i) & ")"
    .Size = New Size(80, 30)
    .Location = New Point(10, 10 + i * 2 * .Height)
    .Visible = True

    ' Auf das Click-Ereignis reagieren können:
    AddHandler .Click, AddressOf btnArray_Click

    End With

    Next i

    End Sub


    Private Sub btnArray_Click(ByVal sender As Object, _
    ByVal e As System.EventArgs)
    ' Click-Ereignis des Button-Arrays auswerten
    Dim itemClicked As Button = CType(sender, Button)
    Dim index As Integer = -1I

    ' Das betroffene Element im Array suchen (allgemein);
    ' Möglich wäre etwa auch das Vorgehen über die eigens
    ' zugewiesene Name-Eigenschaft des Buttons.
    For i As Integer = LBound(btnArray) To UBound(btnArray)
    If btnArray(i) Is itemClicked Then
    index = i
    Exit For
    End If
    Next

    If index > 0 Then ' Element im Array gefunden (sonst index = -1)
    ' Kurze Informations-MessageBox für das Codebeispiel
    MessageBox.Show("Sie haben den Button Nr. " & CStr(index) & " angeklickt", _
    "Index des Buttons ermittelt", _
    MessageBoxButtons.OK, _
    MessageBoxIcon.Information)
    End If

    End Sub

    End Class

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!