none
PropertyGrid RRS feed

  • Pregunta

  • Hola grupo:
     
    Me gustaria saber como controlar los errores en la entradas por teclado de
    un usuario en una propiedad del control PropertyGrid.
     
    Me explico: Una de las propiedades es de tipo byte, me gustaria interceptar
    el valor de alguna manera para que cuando no sea un valor valido controlar
    la accion a seguir. Ejemplo si introducen un valor grande "12345" asignar un
    valor valido o mostrar una ventana indicando el rango de valores validos.
     
    Muchas Gracias
    Saludos
    Francisco
    Ja?n - Spain
     
     
     
    • Cambiado Enrique M. Montejo miércoles, 14 de septiembre de 2011 17:03 (De:Lenguaje VB.NET)
    martes, 13 de julio de 2010 12:23

Todas las respuestas

  • Hola podrias hacer un override del evento OnPropertyValueChanged 

     

    En la variable e vas a tener el valor de la propiedad y puedes llevar a cabo la comprobación si el valor es satisfactorio o no.


    Para el correcto funcionamiento, y que otros usuarios se puedan beneficiar de la solucion de esta pregunta por favor marca las respuestas que te hayan ayudado como "Respuesta".
    Si la respuesta te ha sido util Votala.
    Mi Blog: Jtorrecilla
    Enlace a Faq de Winforms en Ingles Muy bueno
    martes, 13 de julio de 2010 12:30
    Moderador
  • No me funciona con ese evento, ya que este evento se lanza cuando el valor es de tipo byte, osea correcto para la propiedad. Lo que quiero es interceptarlo antes de que de el mensaje del que el valor no es de tipo byte como se puede ver en la imagen siguiente
     
    "jtorrecilla" <=?utf-8?B?anRvcnJlY2lsbGE=?=> escribió en el mensaje news:38ecf077-10db-4202-9fee-b05919c60da4...

    Hola podrias hacer un override del evento OnPropertyValueChanged 

     

    En la variable e vas a tener el valor de la propiedad y puedes llevar a cabo la comprobación si el valor es satisfactorio o no.

    miércoles, 14 de julio de 2010 7:35
  • No me funciona con ese evento, ya que este evento se lanza cuando el valor es de tipo byte, osea correcto para la propiedad.
     
    Lo que quiero es interceptarlo antes de que de el mensaje del que el valor no es de tipo byte como se puede ver en la imagen adjunta
     

    Hola podrias hacer un override del evento OnPropertyValueChanged 

     

    En la variable e vas a tener el valor de la propiedad y puedes llevar a cabo la comprobación si el valor es satisfactorio o no.

    miércoles, 14 de julio de 2010 7:38
  • Umh las propiedades que defines en el propertyGrid las estás utilizando con una clase? o con un control personalizado, o con un control normal?
    Para el correcto funcionamiento, y que otros usuarios se puedan beneficiar de la solucion de esta pregunta por favor marca las respuestas que te hayan ayudado como "Respuesta".
    Si la respuesta te ha sido util Votala.
    Mi Blog: Jtorrecilla
    Enlace a Faq de Winforms en Ingles Muy bueno
    miércoles, 14 de julio de 2010 7:54
    Moderador
  • Es una clase con el siguiente codigo de ejemplo:
     
    Imports System.ComponentModel
    Imports System.ComponentModel.Design
     
    Public Class clsPropiedades
    Private mvTexto As String = "Texto de Prueba"
    Private mvFile As String = ""
    Private mvDirectorio As String = ""
    Private mvValorByte As Byte = 0
     
    ...
     
    Public Property ValorByte() As Byte
    Get
    Return mvValorByte
    End Get
    Set(ByVal value As Byte)
    mvValorByte = value
    End Set
    End Property
     
    End Class
     
    "jtorrecilla" <=?utf-8?B?anRvcnJlY2lsbGE=?=> escribi? en el mensaje
    news:06f9e101-d028-4701-abf5-49a6e83dc8dd...
    Umh las propiedades que defines en el propertyGrid las est?s utilizando con
    una clase? o con un control personalizado, o con un control normal?
     
    Para el correcto funcionamiento, y que otros usuarios se puedan beneficiar
    de la solucion de esta pregunta por favor marca las respuestas que te hayan
    ayudado como "Respuesta".
    Si la respuesta te ha sido util Votala.
    Mi Blog: Jtorrecilla
    Enlace a Faq de Winforms en Ingles Muy bueno
     
     
     
    miércoles, 14 de julio de 2010 9:00
  • No se quizas con este ejemplo, que aunque sigue la logica de mi primer mensaje y está en c#, te puede dar una pista de como seguir...
    Para el correcto funcionamiento, y que otros usuarios se puedan beneficiar de la solucion de esta pregunta por favor marca las respuestas que te hayan ayudado como "Respuesta".
    Si la respuesta te ha sido util Votala.
    Mi Blog: Jtorrecilla
    Enlace a Faq de Winforms en Ingles Muy bueno
    miércoles, 14 de julio de 2010 9:09
    Moderador
  • Si, es lo que estamos hablando, en el caso de introducir un valor valido
    para la variable entonces pasa a dicho evento que podemos comprobar que
    intevalo nos interesa. Eso es lo mismo que si en la propiedad de la clase
    compruebas el valor :
     
    Public Property ValorByte() As Byte
    Get
    Return mvValorByte
    End Get
    Set(ByVal value As Byte)
    If value < 1 Or value > 5 Then
    mvValorByte = 1
    Else
    mvValorByte = value
    End If
    End Set
    End Property
     
    Pero en cambio el usuario teclea en el propertygrid una valor superior a 255
    o simplemente letras, nos devuelve una ventanita con el error antes de
    entrar al evento o a este codigo.
     
    Ese paso es el que quiero controlar.
     
     
    "jtorrecilla" <=?utf-8?B?anRvcnJlY2lsbGE=?=> escribi? en el mensaje
    news:02381248-4d20-44f7-bec1-15f2fc9359e5...
    No se quizas con este ejemplo, que aunque sigue la logica de mi primer
    mensaje y est? en c#, te puede dar una pista de como seguir...
     
    Para el correcto funcionamiento, y que otros usuarios se puedan beneficiar
    de la solucion de esta pregunta por favor marca las respuestas que te hayan
    ayudado como "Respuesta".
    Si la respuesta te ha sido util Votala.
    Mi Blog: Jtorrecilla
    Enlace a Faq de Winforms en Ingles Muy bueno
     
     
     
    miércoles, 14 de julio de 2010 9:30