Ceazione Evento derivato in User control

venerdì 19 agosto 2011 - 12.03
Tag Elenco Tags  VB.NET  |  .NET 4.0

vito90 Profilo | Newbie

Ciao ragazzi , ho un problema :

ho creato un user control contenente una textbox , button e label per il lookup di una tabella .

Ora sto cercando di creare un evento public che faccia la stessa cosa del TextChanged della textbox .

Questo mi serve per implementare un sistema di ricerca veloce nel form su cui andrà posizionato l'usercontrol .

La mia domanda e questa : come faccio a creare un evento identico e preciso al textchanged della textbox presente nell'user control ??

grazie

VB.net 2010

u235 Profilo | Junior Member

crei l'evento per il controllo, aggiungi un eventHandler all'evento della textbox, quando questo viene chiamato lo passi all' eventHandler creato per l'evento del controllo.

esempio in c# :

public partial class UserControl2 : UserControl
{
EventHandler textBoxEventHandler = null;

public event EventHandler Evento
{
add { this.textBoxEventHandler += value; }
remove { this.textBoxEventHandler -= value; }
}

public UserControl2()
{
InitializeComponent();
this.textBox1.TextChanged += new EventHandler(textBox1_TextChanged);
}

void textBox1_TextChanged(object sender, EventArgs e)
{
if (this.textBoxEventHandler != null)
this.textBoxEventHandler(this, e);
}
}

vito90 Profilo | Newbie

Grazie per la risposta

Purtroppo però non mastico troppo il C#

Proverò a implementare quello che mi hai scritto in vb.net e vedremo ...

u235 Profilo | Junior Member

eheheh

forse questo ti può aiutare :

Partial Public Class UserControl2
Inherits UserControl

Private handlers As EventHandler = Nothing
Public Custom Event Evento As EventHandler

AddHandler(ByVal value As EventHandler)
handlers = [Delegate].Combine(handlers, value)
End AddHandler
RemoveHandler(ByVal value As EventHandler)
handlers = [Delegate].Remove(handlers, value)
End RemoveHandler
RaiseEvent(ByVal sender As Object, ByVal e As EventArgs)
handlers(Me, e)
End RaiseEvent
End Event

Public Sub New()
InitializeComponent()
AddHandler TextBox1.TextChanged, AddressOf MyEventHandler
End Sub

Public Sub MyEventHandler(ByVal sender As Object, ByVal e As EventArgs)
If handlers <> Nothing Then
handlers(sender, e)
End If
End Sub
End Class

vito90 Profilo | Newbie

Grazie mille !!!! Apparentemente funziona alla grande

Visto che piu o meno o capito il meccanismo , ma non sono ancora tanto pratico sulla creazione degli eventi ,potresti linkarmi qualche guida o qualche how-to semplificativo ??

Grazie mille

u235 Profilo | Junior Member

a dire il vero non saprei, scusami ma io purtroppo il vb.net non lo mastico tanto bene, però ho sentito spesso parlare bene della guida fatta da "il totem" apposita per vb.net, come guida semplice e intuitiva, ma non l'ho mai letta.

mi spiace, ma non saprei aiutarti oltre.

ciao.

vito90 Profilo | Newbie

Ok ... quella guida c'è l'ho già

Purtroppo queste sono cose un po avanzate quindi non si trova tanta documentazione sul web

Grazie

u235 Profilo | Junior Member

hai ragione, ho provato a googlogare un po ma a primo impatto non sembra esserci molto.
ho trovato questo :
http://www.simple-talk.com/dotnet/.net-framework/custom-events-in-vb.net-2005/
che però tratta la questione in modo diverso da come l'ho trattato io nell'esempio.

comunque, se hai bisogno di qualche delucidazione (e posso dartela, dipende se ci arrivo!) sono a disposizione.

ciao :)

vito90 Profilo | Newbie

Si , avevo gia visto questa pagina ...

Grazie per la disponibilità
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-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5