vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Schützen Sie Ihre Software vor Software-Piraterie - mit sevLock 1.0 DLL!  
 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
Re: Click und KeyDown Problem 
Autor: Manfred X
Datum: 30.01.22 06:13

Hallo!

Wenn Du eine größere Zahl von Controls in einem Formular bzw. Fenster oder Container
benötigst, erledige das nicht im Designer, sondern erstelle diese Controls in einer
Code-Schleife. Richte dabei die Einstellungen ein und weise die Referenzen auf
ein Array, eine generische Liste oder eine generische Dictionary zu.

Die Zuordnung von Eventhandler-Routinen zu den Controls wird dabei nicht per
Withevents/Handles-Klausel vorgenommen, sondern über die AddHandler-Methode unter
Nutzung des Addressof-Operators.

Windows-Forms-Beispiel:
Public Class frmButtonCreate
 
    'Liste zur späteren Aufnahme der Button-Referenzen als Listen-Items
    Private Buttons As New List(Of Button)
 
 
    Private Sub frmButtonCreate_Load(sender As Object, e As EventArgs) Handles _
      MyBase.Load
 
        Me.Size = New Size(200, 500)
 
        Dim btn As Button 'Variable für eine Referenz auf ein Button-Objekt
 
        For i As Integer = 1 To 10
            'neuen Button erstellen und Eigenschaften einrichten
            'Referenz in Variable btn wechselt
            btn = New Button With 
            {.Parent = Me, .Text = "Button_" & i.ToString, 
             .Top = (i - 1) * 40, .Width = 100}
 
            'Farben einstellen
            btn.BackColor = Color.FromArgb(i * 20, i * 20, i * 20)
            btn.ForeColor = Color.Red
 
            'Button in Liste anhängen (Listen-Referenz auf Button)
            Buttons.Add(btn)
 
            'Click-Eventhandler zuordnen
            AddHandler btn.Click, AddressOf Buttons_Click
 
            'weitere Eventhandler zuordnen
            AddHandler btn.PreviewKeyDown, AddressOf Buttons_PreviewKeydown
            AddHandler btn.KeyDown, AddressOf Buttons_Keydown
        Next i
 
        'Einen Button der Liste per Code betätigen (Event wird ausgelöst)
        Buttons(5).PerformClick()
 
        'Die Handlerroutine eines Buttons im Code direkt aufrufen
        Buttons_Click(Buttons(3), EventArgs.Empty)
    End Sub
 
 
    Private Sub Buttons_Click(sender As Object, e As EventArgs)
        Dim btn As Button = DirectCast(sender, Button)
        MsgBox(btn.Text & " ist geclickt worden")
    End Sub
 
 
    Private Sub Buttons_Keydown(sender As Object, e As KeyEventArgs)
        Dim btn As Button = DirectCast(sender, Button)
        MsgBox(btn.Text & "  " & e.KeyCode.ToString & " ist betätigt worden.")
    End Sub
 
 
    Private Sub Buttons_PreviewKeydown(sender As Object, e As _
      PreviewKeyDownEventArgs)
        If e.KeyCode = Keys.Return Or e.KeyCode = Keys.Escape Then e.IsInputKey _
        = True
    End Sub
 
End Class
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Click und KeyDown Problem493Andreas M.29.01.22 15:05
Re: Click und KeyDown Problem337Manfred X29.01.22 19:21
Re: Click und KeyDown Problem260Andreas M.29.01.22 21:05
Re: Click und KeyDown Problem255Andreas M.29.01.22 22:43
Re: Click und KeyDown Problem448Andreas M.30.01.22 00:04
Re: Click und KeyDown Problem365Manfred X30.01.22 06:13

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