Visual Basic.NET - Como saber el objeto que convoco el addhandler

 
Vista:

Como saber el objeto que convoco el addhandler

Publicado por Christian (174 intervenciones) el 19/04/2005 21:34:34
Hola tengo este codigo:

Public Function CrearEtiqueta(ByVal Dato As String)
Dim Objeto As System.Windows.Forms.Label
Objeto = New Label
Objeto.Size = New System.Drawing.Size(Len(Dato) * 10, 16)
Objeto.Location = New System.Drawing.Point(8, Alto)
Objeto.Name = "lbl" + Dato
Objeto.Text = Dato
Me.Controls.Add(Objeto)
Alto = Objeto.Location.Y + 16
AddHandler Objeto.DoubleClick, AddressOf AlHacerClick
End Function

Public Sub AlHacerClick(ByVal sender As Object, ByVal e As System.EventArgs)
Dim x As String
x = sender.GetType 'Como obtengo el nombre del objeto que lo convoco'
MsgBox("Salio " & x)
End Sub

Necesito saber en el evento como se que objeto lo convoco???

Gracias de antemano, usen el codigo libremente!!! ;)

Saludos
Christian
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Como saber el objeto que convoco el addhandler

Publicado por Edgar (1501 intervenciones) el 20/04/2005 14:13:51
Hola

Si sabes que el objeto fue un Label, haces el casting a este tipo, y luego buscas el nombre con la propiedad Name

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Como saber el objeto que convoco el addhandler

Publicado por christian (174 intervenciones) el 20/04/2005 15:13:54
Tenes un ejemplo? porque la verdad estoy perdido, gracias???

Saludos
Christian
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Como saber el objeto que convoco el addhandler

Publicado por Christian (174 intervenciones) el 21/04/2005 17:12:25
Hola,

Lo que pasa es que puede ser un label o cualquier otro objeto lo que importa es saber el nombre del objeto que ejecuta esa instancia.

Espero que puedas ayudarme.-

Gracias anticipadas.
Christian
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Como saber el objeto que convoco el addhandler

Publicado por Edgar (1501 intervenciones) el 21/04/2005 18:21:10
Hola

Entonces haces el casting al tipo control.. lo haces asi

ctl = CType(obj, Control)

y luego ctl.Name para obtener el nombre

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Edgar no me falles.....o cualquie otro..please

Publicado por Christian (174 intervenciones) el 22/04/2005 20:45:23
Hola,

Desde ya y como siempre gracias por tomarte el tiempo de responder todas las consultas que te hago.

Lee el siguiente codigo:...

Public Function CrearEtiqueta(ByVal Dato As String)
Dim Objeto As System.Windows.Forms.Label
Objeto = New Label
Objeto.Size = New System.Drawing.Size(Len(Dato) * 10, 16)
Objeto.Location = New System.Drawing.Point(8, Alto)
Objeto.Name = "lbl" + Dato
Objeto.Text = Dato
Me.Controls.Add(Objeto)
Alto = Objeto.Location.Y + 16
AddHandler Objeto.DoubleClick, AddressOf AlHacerClick
End Function

Public Sub AlHacerClick(ByVal sender As Object, ByVal e As System.EventArgs)
Dim ctl As Object
Dim x As String
ctl = CType(sender, Label)
x = ctl.GetType.Name
MsgBox("Salio " & x)
End Sub

Bueno necesito que "x" obtenga el nombre del objeto que cree en el crear etiqueta "Objeto.Name = "lbl" + Dato" en la instancia del doble click.

ejemplo:

Creo 4 etiquetas lbl1, lbl2, lbl3, lbl4, cuando hago dobleclick en lbl1, me debe salir el mensaje "ud. hizo doble clieck en el lbl1" y asi segun que presione. El problema es que no obtengo ese nombre de ninguna manera ni por "sender" ni por "e".

Espero puedas ayudarme.

Gracias
Christian
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Edgar no me falles.....o cualquie otro..please

Publicado por Edgar (1501 intervenciones) el 22/04/2005 20:56:30
Hola

Esta linea.. x = ctl.GetType.Name debe estar devolviendo System.Windows.Form.Label...

Deberias hacer es x=ctl.Name en todo caso...

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Como saber el objeto que convoco el addhandler

Publicado por Harold (411 intervenciones) el 23/04/2005 14:51:07
'Al crear el objeto le asignas la propiedad tag (el mismo nombre que el texto)
Dim alto As New Point(8, 15)
Public Function CrearEtiqueta(ByVal Dato As String)
Dim Objeto As System.Windows.Forms.Label
Objeto = New Label
Objeto.Size = New System.Drawing.Size(Len(Dato) * 10, 16)
Objeto.Location = alto
Objeto.Name = "lbl" + Dato
Objeto.Text = Dato
Objeto.Tag = Dato
Me.Controls.Add(Objeto)
alto.X = alto.X
alto.Y = alto.Y + 16
AddHandler Objeto.DoubleClick, AddressOf AlHacerClick
End Function

Public Sub AlHacerClick(ByVal sender As Object, ByVal e As System.EventArgs)
Dim x As String
MsgBox(sender.tag) 'Como obtengo el nombre del objeto que lo convoco'
'MsgBox("Salio " & x)
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
CrearEtiqueta(txtdato.text)
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Como saber el objeto que convoco el addhandler

Publicado por Harold (411 intervenciones) el 23/04/2005 14:52:15
Dim alto As New Point(8, 15)
Public Function CrearEtiqueta(ByVal Dato As String)
Dim Objeto As System.Windows.Forms.Label
Objeto = New Label
Objeto.Size = New System.Drawing.Size(Len(Dato) * 10, 16)
Objeto.Location = alto
Objeto.Name = "lbl" + Dato
Objeto.Text = Dato
Objeto.Tag = Dato
Me.Controls.Add(Objeto)
alto.X = alto.X
alto.Y = alto.Y + 16
AddHandler Objeto.DoubleClick, AddressOf AlHacerClick
End Function

Public Sub AlHacerClick(ByVal sender As Object, ByVal e As System.EventArgs)
Dim x As String
MsgBox(sender.tag) 'Como obtengo el nombre del objeto que lo convoco'
'MsgBox("Salio " & x)
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
CrearEtiqueta(txtdato.text)
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Aqui mi solucion

Publicado por Christian (6 intervenciones) el 25/04/2005 20:13:18
Hola,

Despues de mucho buscar, leer y probar. mi solucion antes de probar cualquiera de la de uds.

Como siempre les estoy muy agradecido por todos los consejo que me han dado.

dim x as string
dim m as integer
m=me.controls.indexof(sender)
x=me.controls.item(m).name

Asi siempre que hago doble click con el mouse me pasa el nombre del metodo que esta en foco y por lo tanto desencadeno el evento.

Saludos
Christian
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar