vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Brandneu! sevEingabe v3.0 - Das Eingabecontrol der Superlative!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Formular: Controls erstellen und löschen in einer LIste 
Autor: Manfred X
Datum: 01.12.23 13:18

Public Class frmControl_Dynamic
 
    'Liste für Referenzen auf Textboxen
    Dim tbo_list As New List(Of TextBox)
    Const tbo_Max As Integer = 10
 
 
    Dim WithEvents btnCreateTBO As New Button With
         {.Parent = Me, .Top = 10, .Left = 10, .Width = 200, .Text = "Add" & _
           "Textbox"}
 
    Dim WithEvents btnDeleteTBO As New Button With
        {.Parent = Me, .Top = 50, .Left = 10, .Width = 200, .Text = "Delete" & _
          "Textbox"}
 
 
    Private Sub btnCreateTBO_Click(sender As Object, e As EventArgs) Handles _
      btnCreateTBO.Click
 
        If tbo_list.Count >= tbo_Max Then
            MsgBox("Zu viele Textboxen")
            Exit Sub
        End If
 
        'Control erstellen
        Dim tbo As New TextBox With
          {.Parent = Me, .Top = getTextBox_Top(tbo_list.Count), .Left = 10, _
            .Width = 300,
          .Name = getTextbox_Name(), .[ReadOnly] = True}
 
        'Handler einrichten
        AddHandler tbo.KeyDown, AddressOf tbo_keydown
 
        'Control an Liste anhängen und Index notieren (Demo)
        tbo_list.Add(tbo)
        IndexAppendToText()
 
    End Sub
 
 
    Private Sub btnDeleteTBO_Click(sender As Object, e As EventArgs) Handles _
      btnDeleteTBO.Click
 
        If tbo_list.Count = 0 Then Exit Sub
 
        Dim ret As String = InputBox _
         ("Welche Textbox soll gelöscht werden? (0-" & (tbo_list.Count - _
         1).ToString & ")",
           tbo_list.Count - 1.ToString)
        If String.IsNullOrWhiteSpace(ret) Then Exit Sub
 
        Dim index As Integer
        If Not Integer.TryParse(ret, index) OrElse
            (index < 0 Or index >= tbo_list.Count) Then Exit Sub
 
        'Löshen eines Controls, das über die Liste referenziert wird
        RemoveHandler tbo_list(index).KeyDown, AddressOf tbo_keydown  'Demo
        tbo_list(index).Dispose()  'Windows Control am Index freigeben
        tbo_list(index) = Nothing  'Referenz aufheben, dadurch Net-Rahmen für 
        ' GC freigeben
        tbo_list.RemoveAt(index)   'Listenindex löschen
 
        If tbo_list.Count > 0 Then
            'Textboxen im Formular neu anordnen
            For i As Integer = 0 To tbo_list.Count - 1
                tbo_list(i).Top = getTextBox_Top(i)
            Next i
        End If
 
        'Indices neu eintragen und anzeigen (Demo)
        IndexAppendToText()
        Me.Refresh()
    End Sub
 
 
    Private Function getTextBox_Top(index As Integer)
        Return index * 30 + 80
    End Function
 
 
    Private Function getTextbox_Name()
 
        'Eindeutigen Namen für das Controls ermitteln
        Dim index, maxindex As Integer
 
        For i As Integer = 0 To tbo_list.Count - 1
            Dim parts() As String = tbo_list(i).Name.Split("_"c)
            If Integer.TryParse(parts(parts.Length - 1), index) Then
                maxindex = Math.Max(maxindex, index)
            End If
        Next i
        Return "tbo_" & (maxindex + 1).ToString
    End Function
 
 
    Private Function IndexAppendToText()
 
        'Demo-Beispiel  Listenindex in Text eintragen
        For i As Integer = 0 To tbo_list.Count - 1
            tbo_list(i).Text = tbo_list(i).Name & "  Index_" & i.ToString
        Next i
    End Function
 
 
    Private Sub tbo_keydown(sender As Object, e As KeyEventArgs)
        'Bearbeitung des KeyDown-Events aller Textboxen
        Dim tbo As TextBox = DirectCast(sender, TextBox)
        Me.Text = tbo.Text 'Demo
    End Sub
 
End Class
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
zur Laufzeit erzeugte Textbox544Bernd.zi30.11.23 16:04
Re: zur Laufzeit erzeugte Textbox221Manfred X01.12.23 11:04
Re: zur Laufzeit erzeugte Textbox169Bernd.zi01.12.23 12:51
Formular: Controls erstellen und löschen in einer LIste238Manfred X01.12.23 13:18
Re: zur Laufzeit erzeugte Textbox143Bernd.zi01.12.23 13:57
Re: zur Laufzeit erzeugte Textbox142Bernd.zi01.12.23 14:19
Re: zur Laufzeit erzeugte Textbox179Manfred X01.12.23 14:48
Re: zur Laufzeit erzeugte Textbox83Bernd.zi06.12.23 13:04
Re: zur Laufzeit erzeugte Textbox145Bernd.zi01.12.23 16:46
Ergebnisliste129Manfred X01.12.23 17:30
Re: zur Laufzeit erzeugte Textbox138Bernd.zi01.12.23 16:56
Re: zur Laufzeit erzeugte Textbox183Manfred X01.12.23 17:35
Re: zur Laufzeit erzeugte Textbox185Bernd.zi01.12.23 17:15
Re: zur Laufzeit erzeugte Textbox148Bernd.zi01.12.23 17:18
Re: zur Laufzeit erzeugte Textbox122Bernd.zi01.12.23 17:52
Re: zur Laufzeit erzeugte Textbox127Bernd.zi01.12.23 18:02
Re: zur Laufzeit erzeugte Textbox155Bernd.zi01.12.23 18:06
Play the Random Game119Manfred X02.12.23 11:15
Re: zur Laufzeit erzeugte Textbox123Bernd.zi02.12.23 12:17
Re: zur Laufzeit erzeugte Textbox105Bernd.zi02.12.23 13:53
Re: zur Laufzeit erzeugte Textbox89Bernd.zi05.12.23 09:15
Re: zur Laufzeit erzeugte Textbox91Manfred X05.12.23 20:31
Re: zur Laufzeit erzeugte Textbox150sv0001007.12.23 11:32
Re: zur Laufzeit erzeugte Textbox145Manfred X07.12.23 11:36
Re: zur Laufzeit erzeugte Textbox139sv0001007.12.23 13:44
Re: zur Laufzeit erzeugte Textbox64Bernd.zi07.12.23 11:36
Re: zur Laufzeit erzeugte Textbox92Bernd.zi07.12.23 11:48
Re: zur Laufzeit erzeugte Textbox101Bernd.zi08.12.23 14:50
Re: zur Laufzeit erzeugte Textbox80Manfred X08.12.23 21:22
Re: zur Laufzeit erzeugte Textbox119Bernd.zi09.12.23 11:54
Re: zur Laufzeit erzeugte Textbox81sv0001011.12.23 09:03
Re: zur Laufzeit erzeugte Textbox101Bernd.zi11.12.23 11:23
Re: zur Laufzeit erzeugte Textbox91Bernd.zi13.12.23 12:02
Re: zur Laufzeit erzeugte Textbox124Manfred X13.12.23 13:14
Re: zur Laufzeit erzeugte Textbox83Bernd.zi13.12.23 14:42
Re: zur Laufzeit erzeugte Textbox77Manfred X13.12.23 15:56
Re: zur Laufzeit erzeugte Textbox116Bernd.zi13.12.23 18:17
Re: zur Laufzeit erzeugte Textbox84Manfred X13.12.23 19:35
Re: zur Laufzeit erzeugte Textbox61Bernd.zi13.12.23 20:01
Re: zur Laufzeit erzeugte Textbox86Manfred X14.12.23 08:55

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel