Gestione Eventi

giovedì 15 luglio 2010 - 18.01
Tag Elenco Tags  VB.NET  |  .NET 2.0  |  .NET 3.0  |  .NET 3.5  |  .NET 4.0  |  Windows XP  |  Visual Studio 2008

Earthquake Profilo | Junior Member

Salve Ragazzi,
Ho questo problema.
Ho creato un controllo personalizzato (windows form) .
E' una semplice TextBox con una label in testa.
Ho creato dei metodi e delle proprietà pubblice e diversi eventi pubblici.
Fin qui tutto bene.
Quando però da un evento standard della textbox (Evento Keypress) invoco un evento Pubblico da me creato per poterlo gestire dall'applicazione
che contiene il mio controllo, tale evento non si scatena, nel senso che il keypress della text funziona ma e come se la riga di codice
Raisevent mioevento() non viene vista dalla form che ospita il contrllo.
Faccio un esempio per descrivere meglio.
'------------------------------------------------------------------------------------------------------------------------------------------------------------------
'Controllo TextBox Personalizzato
Public Event myTxtKeyPress(ByVal e As System.Windows.Forms.KeyPressEventArgs)

Private Sub myTxt_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles myTxt.KeyPress
RaiseEvent myTxtKeyPress(e)
End Sub

' Windows Form contenete il controllo personalizzato
Private Sub KeyPress(ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles myTxt.myTxtKeyPress
msgbox("Eccomi")
End Sub
'------------------------------------------------------------------------------------------------------------------------------------------------------------------
la RaiseEvent myTxtKeyPress(e) non fa scatenare l'evento nella form
Chi mi sa dire il perche ?
Sto sbagliando in qualcosa?
Grazie in anticipo

willy_80 Profilo | Senior Member

Ciao, non so se è la causa ma quando io faccio le mie dll con eventi publici per generare questi eventi utilizzando un evento standard o metto l'handle o uso il metodo raiseevent, non vorrei che la tua doppia generazione creasse problemi, prova ad eliminarne uno.

Prova così:

Public Event'Controllo TextBox Personalizzato
Public Event myTxtKeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs)Handles myTxt.KeyPress

' Windows Form contenete il controllo personalizzato
Private Sub KeyPress(ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles myTxt.myTxtKeyPress
msgbox("Eccomi")
End Sub

Earthquake Profilo | Junior Member

Scusate ragazzi!!
Ho trovato l'errore.
Ovviamente umano.
Nel form chiamante associavo l'handles ad un altro controllo!!!
Scusatemi ancora.
Confermo che la gestione degli eventi funziona benissimo

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