Addhandler e removehandler dinamici, problema con label....

venerdì 11 aprile 2008 - 11.24

DeTtOlO Profilo | Newbie

Salve a tutti, ho un problema:

100 label, nominata da: lab001 a lab100.


Private Sub aggiungihandler(ByVal sender As Label, ByVal e As System.EventArgs)

sender.ForeColor = Color.Green
AddHandler sender.MouseHover, AddressOf eventohover
AddHandler sender.DoubleClick, AddressOf eventodclick
AddHandler sender.DoubleClick, AddressOf eventoclick

End Sub


se uso la sub:

aggiungihandler(lab001,e) è tutto ok.

il mio probblema è il seguente:

vorrei non dover chiamare la routine 100 volte con 100 parametri diversi, ma poterlo fare dinamicamente.

dim var as String
var = "lab001"

vorrei poter chiamare la sub con:
aggiungihandler(var,e)

dove var ovviamente è il nome della label già creata via design...

che strada devo percorrere? è possibile?

Grazie!

aiedail92 Profilo | Expert

Ciao

Potresti eseguire un ciclo For Each fra tutte le Label del tuo Form, controllare se il nome è nella forma labxxx, e se è così aggiungere l'handler alla label:

Sub AssegnaEventHandlers() 'Uso una regex per verificare che il nome sia nel formato labxxx Dim regex As New System.Text.RegularExpressions.Regex("\Alab\d{3}\z") 'Col ciclo assegno l'eventhandler a tutte la label che corrispondono For Each label As Label In Me.Controls If regex.IsMatch(label.Name) Then aggiungihandler(label, EventArgs.Empty) End If Next End Sub

Non capisco comunque a cosa serva il parametro di tipo EventArgs nella tua sub aggiungihandler

Luca

DeTtOlO Profilo | Newbie

Ho risolto con:


For Each label As Label In Me.Controls.Find(Strings.Left(LAMIASTRINGA, 5), True)

aggiungihandler(label)

Next


Grazie!
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5