Dim dico As New System.Collections.Generic.Dictionary(Of String, Stopwatch) dico.Add("tel nom", New Stopwatch) dico("tel nom").Start() For i = 0 To 100000 : Next i dico("tel nom").Stop() MsgBox(dico("tel nom").Elapsed.TotalMilliseconds)
' OBJETS LOGIQUES ' Objet unique avec évènement Public Class Form1 Dim WithEvents cb As New ComboBox ' objet avec évènement Dim WithEvents tb As New TextBox Sub Form1_Load(... Controls.AddRange(New System.Windows.Forms.Control() {cb, tb}) ' Met les objets sur la form Sub cb_Click(...) Handles cb.Click Sub tb_Click(...) Handles tb.Click ' utilisation cb.Items.Add(x) tb.text = x 'Objet en collection avec évènement Dim WithEvents b As Button ' pour un bouton Dim listeBoutons As List(Of Button) = New List(Of Button) ' mise en collection Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load For j As Integer = 0 To 2 ' nombre d'obj bouton Me.b = New Button Me.listeBoutons.Add(b) Next Me.listeBoutons.Item(0).Top = 10 ' dialogue avec un des objets Me.listeBoutons.Item(0).Text = "gris Vertical" Me.listeBoutons.Item(1).Top = Me.listeBoutons.Item(0).Top + 30 Me.listeBoutons.Item(1).Text = "gris Horizontal" Me.listeBoutons.Item(2).Top = Me.listeBoutons.Item(1).Top + 30 Me.listeBoutons.Item(2).Text = "rouge Vertical" For i As Integer = 0 To 2 Me.listeBoutons.Item(i).AutoSize = True Me.listeBoutons.Item(i).Left = 10 Next i Me.Left = 10 Me.Top = Me.Left Me.Width = 450 Me.Height = 300 AddHandler Me.listeBoutons.Item(0).Click, AddressOf b_Click ' pour les évènements AddHandler Me.listeBoutons.Item(1).Click, AddressOf b_Click AddHandler Me.listeBoutons.Item(2).Click, AddressOf b_Click For Each objBouton In listeBoutons ' ajout à la form Me.Controls.Add(objBouton) Next End Sub ' Sub b_Click(ByVal sender As Object, ByVal e As System.EventArgs) ' procédure CLICK Dim btn As Button = CType(sender, Button) ' conversion en type "bouton" MessageBox.Show("vous avec clique le bouton ..." & btn.Text) ' test End Sub
Dim obj As New Collection() ' GLOBALE DEBUTE A 1 ' DANS LE LOAD par exemple obj.Add(ListBox1)' Mise en liste des objet physiques obj.Add(ListBox2) obj.Add(ListBox3) ' UTILISATION DANS UNE PROCEDURE ' obj n'a pas de numéro ' rajout en fin nom de l'objet avec sa méthode évènementielle Sub obj_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles ListBox1.Click, ListBox2.Click, ListBox3.Click Dim i As Integer For i = 1 To obj.Count If obj.Item(i).Name sender.Name Then MsgBox("index " & i) Next i End Sub