Control en tiempo de ejución

25/10/2004 - 10:11 por AOG | Informe spam
Hola, hay alguna manera de crear varios controles de tipo linklabel y
asociarlos a un evento, yo creo los controles de esta manera, pero no se como
asociarles un evento.

dim xlk as LinkLabel
For i = 1 To _NumLink
xlk = New LinkLabel
With xlk
.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft
.Location = New System.Drawing.Point(10, y)
.Name = "LK" & i.ToString
.Size = New System.Drawing.Size(120, 16)
.TabIndex = i
.TabStop = True
.Text = "LK" & i.ToString
.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
.Visible = True
ForeColor = Color.Blue
End With
PanelCuerpo.Controls.Add(xlk)
y += 30
Next i

Una vez creados en tiempo de ejecución yo quiero cuado pulse sobre algunos
de ellos que ejecute un evento. ¿Cómo los asocio a un evento click?

Un saludo.
AOG

Preguntas similare

Leer las respuestas

#1 Jorge Serrano [MVP VB]
25/10/2004 - 12:41 | Informe spam
Hola AOG,

prueba con este enlace. Es un artículo que escribí y que creo te ayudará:
http://www.microsoft.com/spanish/ms...art127.asp

Un saludo,

Jorge Serrano Pérez
MVP VB.NET


"AOG" wrote:

Hola, hay alguna manera de crear varios controles de tipo linklabel y
asociarlos a un evento, yo creo los controles de esta manera, pero no se como
asociarles un evento.

dim xlk as LinkLabel
For i = 1 To _NumLink
xlk = New LinkLabel
With xlk
.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft
.Location = New System.Drawing.Point(10, y)
.Name = "LK" & i.ToString
.Size = New System.Drawing.Size(120, 16)
.TabIndex = i
.TabStop = True
.Text = "LK" & i.ToString
.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
.Visible = True
ForeColor = Color.Blue
End With
PanelCuerpo.Controls.Add(xlk)
y += 30
Next i

Una vez creados en tiempo de ejecución yo quiero cuado pulse sobre algunos
de ellos que ejecute un evento. ¿Cómo los asocio a un evento click?

Un saludo.
AOG
Respuesta Responder a este mensaje
#2 scalex000
11/09/2006 - 21:07 | Informe spam
he intentado el mismo procedimiento que esta en el enlace suministrado, pero
el evento no funciona.

no se por que necesito ayuda.

"Jorge Serrano [MVP VB]" wrote:

Hola AOG,

prueba con este enlace. Es un artículo que escribí y que creo te ayudará:
http://www.microsoft.com/spanish/ms...art127.asp

Un saludo,

Jorge Serrano Pérez
MVP VB.NET


"AOG" wrote:

> Hola, hay alguna manera de crear varios controles de tipo linklabel y
> asociarlos a un evento, yo creo los controles de esta manera, pero no se como
> asociarles un evento.
>
> dim xlk as LinkLabel
> For i = 1 To _NumLink
> xlk = New LinkLabel
> With xlk
> .ImageAlign = System.Drawing.ContentAlignment.MiddleLeft
> .Location = New System.Drawing.Point(10, y)
> .Name = "LK" & i.ToString
> .Size = New System.Drawing.Size(120, 16)
> .TabIndex = i
> .TabStop = True
> .Text = "LK" & i.ToString
> .TextAlign = System.Drawing.ContentAlignment.MiddleCenter
> .Visible = True
> ForeColor = Color.Blue
> End With
> PanelCuerpo.Controls.Add(xlk)
> y += 30
> Next i
>
> Una vez creados en tiempo de ejecución yo quiero cuado pulse sobre algunos
> de ellos que ejecute un evento. ¿Cómo los asocio a un evento click?
>
> Un saludo.
> AOG
Respuesta Responder a este mensaje
#3 Eduardo
11/09/2006 - 23:46 | Informe spam
Espero te sirva yo lo hago asi y funciona

dim xlk as LinkLabel
For i = 1 To _NumLink
xlk = New LinkLabel
With xlk
.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft
.Location = New System.Drawing.Point(10, y)
.Name = "LK" & i.ToString
.Size = New System.Drawing.Size(120, 16)
.TabIndex = i
.TabStop = True
.Text = "LK" & i.ToString
.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
.Visible = True
ForeColor = Color.Blue
End With

' Aqui prueba poniendo esta linea

AddHandler xlk.click, AddressOf clikEvent

PanelCuerpo.Controls.Add(xlk)
y += 30
Next i

Private Sub ClikEvent(ByVal sender As System.Object, ByVal e As
System.EventArgs)

' Aqui va lo que tu quieras realizar

End Sub


Suerte
Respuesta Responder a este mensaje
#4 scalex000
12/09/2006 - 23:18 | Informe spam
mira este codigo creo no tiene nada mal pero no ejecuta el evento handler

Private Sub event_letter()
Dim count As Integer
Dim Alphabet As String = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
change.InnerText = ""
For count = 0 To Alphabet.Length() - 1
Dim lkbutton As New LinkButton
lkbutton.ID = "lnk_" + (count).ToString
lkbutton.CssClass = "search_by_letter"
lkbutton.Text = Alphabet.Substring(count, 1)
AddHandler lkbutton.Click, AddressOf Me.letter_click
change.Controls.Add(lkbutton)
Next count
End Sub

Private Sub letter_click(ByVal sender As Object, ByVal e As System.EventArgs)
filter_cities(sender)
End Sub

gracias. he estado loco buscando la razon por que el evento no se dispara.
cuando hago click no me trae ningun resultado.

se queda en blanco.


gracias de nuevo


"Eduardo" wrote:

Espero te sirva yo lo hago asi y funciona

dim xlk as LinkLabel
For i = 1 To _NumLink
xlk = New LinkLabel
With xlk
.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft
.Location = New System.Drawing.Point(10, y)
.Name = "LK" & i.ToString
.Size = New System.Drawing.Size(120, 16)
.TabIndex = i
.TabStop = True
.Text = "LK" & i.ToString
.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
.Visible = True
ForeColor = Color.Blue
End With

' Aqui prueba poniendo esta linea

AddHandler xlk.click, AddressOf clikEvent

PanelCuerpo.Controls.Add(xlk)
y += 30
Next i

Private Sub ClikEvent(ByVal sender As System.Object, ByVal e As
System.EventArgs)

' Aqui va lo que tu quieras realizar

End Sub


Suerte






Respuesta Responder a este mensaje
#5 Diego Javier Martínez
18/09/2006 - 19:51 | Informe spam
Tengo exáctamente el mismo problema que tu nada más que yo estoy haciendo un
webcontrol en el cual tiene una tabla y se inserta un linkbutton en cada una
de las filas y lo relaciona con un sub editar() declarado dentro de la misma
clase del webcontrol.
Luego de compilar el webcontrol y agregarlo al webform ejecuto la
aplicación, cuando hago click en cualquiera de los linkbutton de la tabla,
el sub editar() no se ejecuta nunca.
Si te sirve de algo, mi conclusión es que el problema que estamos teniendo
tiene su origen en la forma en que agregamos el control y el momento en el
que lo relacionamos con el sub; pero de todos modos creo que ambos
necesitamos la opinión de alguien más...

A continuación te transcribo mi código para que compares con el tuyo,
conviene aclarar que se trata de una función que inserta una fila de la
tabla con sus correspondientes controles y que dicha función es llamada
reiteradamente por cada fila que se deba agregar:

Private Sub insertarFilaPropiedad(ByVal fila As DataRowView)
'CODIGO QUE INSERTA UNA FILA DE PROPIEDAD EN LA GRILLA

'ESTA PARTE DEL CÓDIGO VA ARMANDO LA FILA Y NO TIENE MAYOR IMPORTANCIA PARA
EL EJEMPLO

Me.Controls.Add(New LiteralControl("<tr class='ROWITEMSTYLE'><td
class='COLUMNITEMSTYLE'>"))
'La propiedad que se identifique como ID del objeto el nombre se marcará en
el control con cursiva
'Si la propiedad actual está identificada como ID del objeto, agregar el tag
de cursiva antes de insertar el label del nombre de la propiedad
Dim esid As String = ""
If fila.Item("ID") Then
Me.Controls.Add(New LiteralControl("<em>"))
esid = "*"
End If
Dim lbl As New Label
lbl.Text = fila.Item("Propiedad") & esid.ToString
lbl.CssClass = "LABELITEMSTYLE"
Me.Controls.Add(lbl)
'Si la propiedad es ID del objeto agregar el tag de fin de cursiva
If fila.Item("ID") Then
Me.Controls.Add(New LiteralControl("</em>"))
End If
Me.Controls.Add(New LiteralControl("</td><td class='COLUMNNVALUESTYLE'>"))
Dim txt As New TextBox
txt.Text = fila.Item("Valor")
txt.Enabled = Not CBool(fila.Item("Readonly"))
txt.CssClass = "VALUECONTROL"
Me.Controls.Add(txt)
If fila.Item("Default") = True Then
txt.Focus()
End If
Me.Controls.Add(New LiteralControl("</td><td>"))


'A CONTINUACIÓN SE INSERTA EL LINKBUTTON Y SE LO VINCULA CON EL sub editar()

Dim lnkboton As New LinkButton
lnkboton.ID = "Editar"
lnkboton.CommandArgument = fila.Item("Nombre").ToString
lnkboton.CommandName = "Edit"
lnkboton.Text = "Editar"
AddHandler lnkboton.Command, AddressOf Me.editar
Me.Controls.Add(lnkboton)

Me.Controls.Add(New LiteralControl("</td></tr>"))
End Sub


'POR OTRA PARTE, DENTRO DE LA MISMA CLASE ESTÁ EL sub editar()

Public Sub editar(ByVal sender As Object, ByVal e As CommandEventArgs)
'aquí va el código a ejecutar
End Sub



Saludos, Diego



"scalex000" escribió en el mensaje
news:
mira este codigo creo no tiene nada mal pero no ejecuta el evento handler

Private Sub event_letter()
Dim count As Integer
Dim Alphabet As String = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
change.InnerText = ""
For count = 0 To Alphabet.Length() - 1
Dim lkbutton As New LinkButton
lkbutton.ID = "lnk_" + (count).ToString
lkbutton.CssClass = "search_by_letter"
lkbutton.Text = Alphabet.Substring(count, 1)
AddHandler lkbutton.Click, AddressOf Me.letter_click
change.Controls.Add(lkbutton)
Next count
End Sub

Private Sub letter_click(ByVal sender As Object, ByVal e As
System.EventArgs)
filter_cities(sender)
End Sub

gracias. he estado loco buscando la razon por que el evento no se
dispara.
cuando hago click no me trae ningun resultado.

se queda en blanco.


gracias de nuevo


"Eduardo" wrote:

Espero te sirva yo lo hago asi y funciona

dim xlk as LinkLabel
For i = 1 To _NumLink
xlk = New LinkLabel
With xlk
.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft
.Location = New System.Drawing.Point(10, y)
.Name = "LK" & i.ToString
.Size = New System.Drawing.Size(120, 16)
.TabIndex = i
.TabStop = True
.Text = "LK" & i.ToString
.TextAlign =
System.Drawing.ContentAlignment.MiddleCenter
.Visible = True
ForeColor = Color.Blue
End With

' Aqui prueba poniendo esta linea

AddHandler xlk.click, AddressOf clikEvent

PanelCuerpo.Controls.Add(xlk)
y += 30
Next i

Private Sub ClikEvent(ByVal sender As System.Object, ByVal e As
System.EventArgs)

' Aqui va lo que tu quieras realizar

End Sub


Suerte






email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida