Foros del Web » Programación para mayores de 30 ;) » .NET »

Problema con un control

Estas en el tema de Problema con un control en el foro de .NET en Foros del Web. Hola a todos, tengo el siguiente problema: estoy diseñando un control que consiste en un panel de fondo para poder ponerle imagenes y encima un ...
  #1 (permalink)  
Antiguo 13/07/2009, 05:00
 
Fecha de Ingreso: mayo-2008
Mensajes: 70
Antigüedad: 16 años, 5 meses
Puntos: 0
Problema con un control

Hola a todos, tengo el siguiente problema: estoy diseñando un control que consiste en un panel de fondo para poder ponerle imagenes y encima un label con un texto.

El problema lo tengo al ponerle al control la propiedad text para que cambie el texto del label. Yo uso el siguiente codigo:

Código:
    <Description("Texto asociado al control"), Browsable(True)> _
    Public Overrides Property Text() As String
        Get
            Return lblTexto.Text
        End Get
        Set(ByVal value As String)
            lblTexto.Text = value
        End Set
    End Property
Mi problema es que en tiempo de diseño cambio la propiedad text de mi control sin problemas, pero al ejecutarlo me pone el texto que tenía el label originariamente por defecto.

Alguien me puede ayudar? Mil gracias.
  #2 (permalink)  
Antiguo 13/07/2009, 10:51
 
Fecha de Ingreso: febrero-2003
Ubicación: chile
Mensajes: 101
Antigüedad: 21 años, 8 meses
Puntos: 1
Respuesta: Problema con un control

Prueba esto:
Código:
Public Property TEXT() As String
            Get
                lblTexto.Text
            End Get
            Set(value As String)
                lblTexto.Text = value
           End Set

 End Property
__________________
s[K]eL
  #3 (permalink)  
Antiguo 14/07/2009, 01:28
 
Fecha de Ingreso: mayo-2008
Mensajes: 70
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: Problema con un control

Cita:
Iniciado por skel363 Ver Mensaje
Prueba esto:
Código:
Public Property TEXT() As String
            Get
                lblTexto.Text
            End Get
            Set(value As String)
                lblTexto.Text = value
           End Set

 End Property
Muchísimas gracias. Efectivamente, con eso se ha solucionado. Ahora simplemente visual me subraya la palabra text en verde con un mensaje diciendo que si quiero reemplazar el método base debería usar "overrides". Supongo que esta advertencia es normal, verdad?

Pero me queda una duda. Por qué solo funciona si pongo TEXT en mayusculas? Si pongo Text no funciona y la verdad es que me gustaría que quedara de la segunda forma. Además, esto también necesito hacerlo con FONT, y si lo pongo en mayusculas se me duplica FONT y Font en mi control.

Al margen de esto, me encantaría saber por qué con overrides no funcionaba y ahora sí. Alguien me lo puede explicar?

Última edición por Acelsp; 14/07/2009 a las 01:41
  #4 (permalink)  
Antiguo 14/07/2009, 06:48
 
Fecha de Ingreso: febrero-2003
Ubicación: chile
Mensajes: 101
Antigüedad: 21 años, 8 meses
Puntos: 1
Respuesta: Problema con un control

solo cambia el nombre a la propiedad;
Public Property setText() As String , o tambien puede ser
Public Property _Text() As String

a gusto del consumidor
__________________
s[K]eL
  #5 (permalink)  
Antiguo 14/07/2009, 07:22
 
Fecha de Ingreso: mayo-2008
Mensajes: 70
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: Problema con un control

Cita:
Iniciado por skel363 Ver Mensaje
solo cambia el nombre a la propiedad;
Public Property setText() As String , o tambien puede ser
Public Property _Text() As String

a gusto del consumidor
Ya veo... Pero lo que pasa es que yo quiero que se llame Text(). No hay forma de hacerlo sin cambiarle el nombre?
  #6 (permalink)  
Antiguo 14/07/2009, 08:18
 
Fecha de Ingreso: febrero-2003
Ubicación: chile
Mensajes: 101
Antigüedad: 21 años, 8 meses
Puntos: 1
Respuesta: Problema con un control

Entonces a la propiedad ponle
Código:
Public Overrides Property Text() As String
Y en el label borra la propiedad Text="" del html
__________________
s[K]eL
  #7 (permalink)  
Antiguo 14/07/2009, 08:22
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 16 años, 4 meses
Puntos: 220
Respuesta: Problema con un control

prueba con esto

Código C#:
Ver original
  1. public override string Text
  2.         {
  3.             get
  4.             {
  5.                 return base.Text;
  6.             }
  7.             set
  8.             {
  9.                 if (value == this.Name && this.DesignMode)
  10.                 {
  11.                     base.Text = String.Empty;
  12.                 }
  13.                 else
  14.                 {
  15.                     base.Text = value;
  16.                 }
  17.             }
  18.         }
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #8 (permalink)  
Antiguo 15/07/2009, 01:58
 
Fecha de Ingreso: mayo-2008
Mensajes: 70
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: Problema con un control

Ese código no me funciona, puesto que mybase no tiene la propiedad text al ser un control, y además, esa solución no me permite modificar el texto durante el diseño.

Mi problema es que yo quiero que Text del control modifique el label del control, pero sin saber por qué al ejecutarlo se pone el valor del label por defecto
  #9 (permalink)  
Antiguo 15/07/2009, 07:48
 
Fecha de Ingreso: febrero-2003
Ubicación: chile
Mensajes: 101
Antigüedad: 21 años, 8 meses
Puntos: 1
Respuesta: Problema con un control

Prueba con esto....

Código:
Public Property Text() As String
            Get
 Return Convert.ToString(ViewState["_text"])
 End Get
            Set(value As String)
 ViewState("_text") = value
 End Set
 End Property

 Protected Sub Page_PreRender(sender As Object, e As EventArgs)
            LoadData()
 End Sub

 Private Sub LoadData()
       Label1.Text =Text
 End Sub
te deveria funionar, si no depura tu proyecto para ver donde te esta cambiando el label, usas AJAX?, en el Page Load que tienes
__________________
s[K]eL
  #10 (permalink)  
Antiguo 16/07/2009, 01:25
 
Fecha de Ingreso: mayo-2008
Mensajes: 70
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: Problema con un control

Ese código me da un error en el viewstate. Creo que es porque pensais que es una aplicación de ASP.NET, y en realidad es un Winform de VisualBasic .Net.

Depurándolo obtengo las siguientes conclusiones:

- Poniendo un breakpoint en el property text no entra nunca. Yo creo que es porque la base del control no tiene dicha propiedad.
- Igual que con la propiedad text, quiero hacer con la propiedad Font para cambiar la fuente del label. La diferencia es que Font sí que está por defecto en la base del control, así es que en su property sí que entra nada mas llamar a InitializeComponents, pero en el get ya devuelve el valor incorrecto.

Última edición por Acelsp; 16/07/2009 a las 01:37
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:20.