Ripetizione di eventi su textbox

sabato 06 giugno 2009 - 22.06

mcounts Profilo | Newbie

Ciao a tutti

Sono un principiante di vb.net, il problema è il seguente:

dovrei usare degli eventi (keydown e enter) su delle textbox chiamate a posta in maniera parametrica (Es. dato100, dato101, dato102), dato che ho circa un centinaio di queste textbox
come posso fare a creare una sorta di funzione che intercetta tutti questi eventi invece di crearmi 100 Sub. ?????

Jeremy Profilo | Guru

Ciao Marco.

for each control as control in me.controls. if typeof control is textbox then addhandler control.keydown, addressof control_keydown addhandler control.enter, addressof control_enter end if next

In questo modo tutte le textbox puntano ad una sola routine, la quale avrà la firma del delegate gestore dell'evento e quindi, potrai fare il cast dell'oggetto sender.


Facci sapere...
Ciao

mcounts Profilo | Newbie

grazie della risposta ,

L'unico problema è che ho una tabcontrol perciò mi devo creare un if per ogni tabpage

cmq funziona

Ciao

Jeremy Profilo | Guru

Ciao Marco.
Se la condizione riferita al tipo TextBox risulta sempre falsa, la spiegazione è una sola....i tuoi controlli TextBox non ereditano dalla classe nativa del framework System.Windows.Forms.TextBox, quindi, dovresti dirci di che controlli si trattano.
Lo puoi vedere sbirciando nel file .Designer del Form dove troverai le dichiarazioni di tutti i controlli inseriti nel Form.

Facci sapere....
Ciao.

mcounts Profilo | Newbie

Ho corretto il msg sopra mentre mi rispondevi.....

Jeremy Profilo | Guru

>Ho corretto il msg sopra mentre mi rispondevi.....
Ho Visto.

>L'unico problema è che ho una tabcontrol perciò mi devo creare un if per ogni tabpage
Non è necessario creare una If per ogni TabPage....è sufficiente modificare il codice in questo modo:

for each control as control in me.controls if typeof control is textbox then addhandler control.keydown, addressof control_keydown addhandler control.enter, addressof control_enter end if if typeof control is tabcontrol then for each page as tabpage in directcast(control,tabcontrol).controls for each control as control in page.controls if typeof control is textbox then addhandler control.keydown, addressof control_keydown addhandler control.enter, addressof control_enter end if next end if next

L'ho scritto al volo e senza intellisense quindi potrebbe esserci qualche errore ... dagli un occhio e poi .... facci sapere..
Ciao



mcounts Profilo | Newbie

c'è un errore sul directcast

Errore 10 'Control' è un tipo e non può essere utilizzato come espressione.

e non sò come correggerlo

Jeremy Profilo | Guru

Posta il tuo codice che lo aggiustiamo.

Ciao

mcounts Profilo | Newbie

Corretto scusa la risp. in ritardo.....
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