Mensajes: 466
Temas: 111
Gracias Recibidas: 17 en 16 posts
Gracias Dadas: 101
Registro en: Jul 2020
06-09-2021, 15:39
(Última modificación: 07-09-2021, 20:51 por
gambafeliz.)
Hola
Tengo una subrutina que se encarga de borrar las cajas de texto y demás controles con la propiedad "Text", como sabeis esta propiedad es heredada.
Mi primera pregunta de dos, ¿es correcto gestionar esta propiedad en una única subrutina para borrar la propiedad "Text" para todos los casos o es mejor crear subrutinas para controles afines y crear otra u otras para controles no afines. Os pongo un ejemplo, TextBox y TextArea son afines y con una subrutina en común podemos poner la propiedad Text = "" pero esto no es posible con DateBox, que aunque tiene la propiedad Text es de solo Lectura.
Mi segunda pregunta es, ¿como conozco que un control tiene la propieded Text en solo Lectura y así ir a la Propiedad Value, de por ejemplo DateBox?
Gracias.
Mensajes: 1,183
Temas: 136
Gracias Recibidas: 446 en 297 posts
Gracias Dadas: 463
Registro en: Jul 2020
Hay maneras de saber si una clase tiene un método o no, etc., pero no te líes, a veces lo más simple es lo más efectivo. Pon esto en un módulo, por ejemplo y luego lo llamas cuando quieras "desvalorizar" los controles de un form.
Saludos
No podemos regresar
Mensajes: 466
Temas: 111
Gracias Recibidas: 17 en 16 posts
Gracias Dadas: 101
Registro en: Jul 2020
Guapo tu sabes que te agradezco siempre tu super-criterio, pero este código al estilo 1 2 3, peta.
Yo lo he resuelto a lo tio cirulo, me fuera encantado saber si es reconocible el saber si es Text de solo Lectura, pero acabo de darme cuenta que tu código me va a dar una pista para resolver el mio con estas lineas.
GAMBAS
try ctrl.
Value=0 ' para mi esta línea seria Try obj.Text = "" if Error then ctrl.
Text="" ' Y esta otra es como si obj (DateBox) obj.Value = ""
No se si te he podido explicar como voy a resolver mi código gracias al tuyo, yo no conocia que tras un Try podía evaluar Error que para mi es que Text es de solo Lectura y por lo tanto trato el Error con .Value y así resuelvo los DateBox.
Gracias tu si que eres un amigo
Mensajes: 1,183
Temas: 136
Gracias Recibidas: 446 en 297 posts
Gracias Dadas: 463
Registro en: Jul 2020
07-09-2021, 10:12
(Última modificación: 07-09-2021, 10:14 por
Shordi.)
GAMBAS
try ctrl.
Value=0 ' para mi esta línea seria Try obj.Text = "" if Error then ctrl.
Text="" ' Y esta otra es como si obj (DateBox) obj.Value = "
"
Los objetos compuestos, como datebox, valuebox, etc., que disponen de propiedad Value, contienen en su interior Textboxes que muestran los valores, pero esos... llamémosles sub-controles, dependen siempre de la propiedad que defina el valor del "control padre". Es decir si testeas primero el textbox estás "puenteando" la propiedad Value del control. Por eso primero has de probar a vaciar el Value y sólo si falla, lo que quiere decir que no ofrece propiedad Value, vaciar entonces el .text. A la inversa puedes tener problemas según qué control sea.
Saludos.
No podemos regresar
Los siguientes 1 usuarios dice gracias a Shordi por este post:1 usuarios dice Gracias! a Shordi por este post
• gambafeliz
Mensajes: 1,397
Temas: 488
Gracias Recibidas: 353 en 255 posts
Gracias Dadas: 249
Registro en: Jul 2020
Buenas!.
¿ Y no sería más fácil si sabes que el control es de un tipo borrar el contenido de su propiedad text ?.
Estoy muy oxidado. Es un código algo más grande.
GAMBAS
Me.
Title = "Limpiar texto de algunos controles" Label1.Text = "Esto no se puede borrar"
TextBox1.Text = "Esto se puede borrar"
TextArea1.Text = "Esto también se puede borrar"
Limpiacampos(FMain)
Dim controleslimpiar
As String[] = ["TextArea",
"TextBox"]
'Si el contenido de la propiedad es distinto de nulo y se encuentra en el array de controleslimpiar
Se nos olvidó la propiedad "controls" del formulario.
Saludos
"Pero no toques, por qué tocas? - Amador"
Mensajes: 466
Temas: 111
Gracias Recibidas: 17 en 16 posts
Gracias Dadas: 101
Registro en: Jul 2020
Hola Shell

chavalote
Cuanto tiempo.... oju
Pues yo hago algo por el estilo, vosotros pasáis el Form y yo paso el Form y un array de Clases para después con un bucle ir directamente a las propiedades Text y en este caso Value y como sinceramente yo se lo que paso pues todo controlado. Ahora bien lo que dice Shordi estoy seguro que tiene razón y aunque no lo he probado confío plenamente en aquello de mas sabe el Diablo por viejo que por Diablo.
Ojo que a Shordi le tengo aprecio y para nada es algo para meterme con el, aunque intuyo que me entiende mis buenas intensiones.
Oye Shell, Gracias y me alegra saludarte aunque sea un ratito algún día.
Saludos.