Limpiar cajas de texto

13/10/2005 - 00:03 por Hugo Gsell | Informe spam
No te estoy entendiendo... xform es el nombre del formulario dentro del cual
se encuentra los text que quiero limpiar ...
AHORA EL ERROR ME DA EN LA
llamada al procedimiento LimpiaCajas
o sea, desde un form llamo al procedimiento así:
LimpiaCajas(Me)

el error es:
D:\Sistemas .NET\SistemaMedico\SistemaMedico\Pacientes.vb(570): Un valor de
tipo 'SistemaMedico.Pacientes' no se puede convertir en '2'.


"Imac_man" <usuarioespecifico@hotmail.com> escribió en el mensaje
news:ulIELW3zFHA.2540@TK2MSFTNGP09.phx.gbl...

a XFORM debes declrarlo como la coleccion de objetos que pertenecen al
formulario.

saludos

"Hugo Gsell" <hagsell@hotmail.com> escribió en el mensaje
news:u59WVR3zFHA.3540@TK2MSFTNGP10.phx.gbl...
> En .NET Leonardo me respondio (ver abajo)
> estoy utilizo para limpiar los text de un form
> Private Sub LimpiaCajas(ByVal xForm As Form)
> Dim Ctrl As Control
> For Each Ctrl In xForm
> If TypeOf Ctrl Is TextBox Then
> Ctrl.Text = ""
> End If
> Next
> End Sub
>
> ME DA EL ERROR
> EN LA LINEA For Each Ctrl In xForm ESPECIFICAMENTE EN LA PALABRA XFORM
>
> D:\Sistemas .NET\SistemaMedico\SistemaMedico\Pacientes.vb(589): La
> expresión
> es del tipo 'System.Windows.Forms.Form', que no es un tipo de colección.
>
> como puedo solucionarlo?
>
>
> Hugo A. Gsell
> Sgo del Estero
> Argentina
>
>
>
>
> "Leonardo Azpurua [mvp vb]" <l e o n a r d o (arroba) m v p s (punto) o


r

> g>
> escribió en el mensaje news:uVHvabHyFHA.3892@TK2MSFTNGP12.phx.gbl...
>>
>> "Hugo Gsell" <hagsell@hotmail.com> escribió en el mensaje
>> news:Ok6Xa7GyFHA.1856@TK2MSFTNGP12.phx.gbl...
>> > Hola.. en el viejo vb6 tenia una clase que hacía lo siguiente
>> > limpiaba los text de un formulario como ahgo para pasar estoa


.net?

>> >
>> > Public Sub LimpiaCajasText(xForm As Form)
>> > Dim Ctrl As Control
>> > For Each Ctrl In xForm
>> > If TypeOf Ctrl Is TextBox Then
>> > Ctrl.Text = "" Then
>> > End If
>> > Next
>> > End Sub
>>
>> Hola, Hugo:
>>
>> Es exactamente igual, salvo que
>> TypeOf Ctrl Is TextBox
>> puede ser reemplazado por
>> Ctrl.GetType.Name = "TextBox"
>>
>> Ademas de que debe haber al menos tres maneras mas de hacer lo mismo.
>>
>>
>> Salud!
>>
>>
>
>


Preguntas similare

Leer las respuestas

#6 SoftJaén
14/10/2005 - 12:04 | Informe spam
"Jorge Hotmail" escribió:

pero por ejemplo. yo hago esto en visual 60.

Text_Num = "text" + ...

donde en la variable controles limpiar podia limpiar cualquier control.

t01=Textbox
l01=ListBox
c01=ComboBox
call limpiar(me,"t01t02t03l01l02c01")

bueno la idea es envia el tipo de control por la primera letra y el numero
que deseaba limpiar, pero trate de hacer en .net y no puede habra alguna
solucion para este dilema mio.



¡Una manera muy personal de limpiar los controles de texto! :-)

Siempre que los nombres de los controles tengan su valor por defecto (que
empiezen por «Text»), está bien, pero como tengan otros nombres (txtNombre,
txtApellido, txtIdCliente, txtLoQueSea, etc.), vas a tener que modificar el
procedimiento «Limpiar» para llevar a efecto la limpieza, porque repito que
dicho procedimiento asume que los controles tienen el nombre por defecto,
cosa que opino que no tiene por qué ser así. Un procedimiento genérico tiene
que servir para todas las circunstancias que se presenten, no para unas
pocas, aunque claro, si sólo lo vas a utilizar tú, y vas a usar los nombres
por defecto, pues te puede servir.

Form(Text_Num).Text = ""



Esa sintaxis abreviada, en Visual Basic 6.0 equivaldría a lo siguiente:

Form.Controls(Text_Num).Text = ""

que sería lo mismo que ejecutar la siguiente línea:

Form.[_Default](Text_Num).Text = ""

y se permite porque al especificar un índice en el objeto Form, estás
haciendo referencia a la colección «Controls» del objeto «Form», que es la
propiedad predeterminada de dicho objeto [_Default], y a la cual se le puede
pasar como índice el nombre del control en forma de variable alfanumérica
("Text1", "Text2", etc.), pero en Visual Basic .NET no está permitido porque
no se puede indexar la clase «Forms.Form», debido a que no tiene una
propiedad predeterminada, como la propiedad [_Default] de Visual Basic 6.0.
Que yo sepa, en VB .NET debes de hacer referencia expresa a la colección
«Controls», y pasarle un índice entero; no puedes abreviar la sintaxis:

Form.Controls(1).Text = ""
Form.Controls(2).Text = ""
Form.Controls(3).Text = ""

Entiendo que hay otras soluciones más eficazes, sobre todo genéricas, que es
lo importante, para limpiar los controles de texto, como por ejemplo, la que
te ha explicado Carlos Gómez, u otras que seguramente habrá por ahí.

Enrique Martínez
[MS MVP - VB]

Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o
sugerido en el presente mensaje.
Respuesta Responder a este mensaje
#7 Jorge Hotmail
14/10/2005 - 18:04 | Informe spam
Bueno tienes razón, pero yo tengo una metodología propia para poder
programar y buscar la estandarización de los controles para mayor
rendimiento de los controles y la idea es que me ayude de una forma fácil y
rápida.
ahora ya encontré la solución me doy una vuelta de mas pero no se nota a lo
menos que este usando mas de mil controles en un form, así que muchas
gracias por todo.

atte.

Jorge Jara J.




"SoftJaén" escribió en el mensaje
news:
"Jorge Hotmail" escribió:

pero por ejemplo. yo hago esto en visual 60.

Text_Num = "text" + ...

donde en la variable controles limpiar podia limpiar cualquier control.

t01=Textbox
l01=ListBox
c01=ComboBox
call limpiar(me,"t01t02t03l01l02c01")

bueno la idea es envia el tipo de control por la primera letra y el
numero
que deseaba limpiar, pero trate de hacer en .net y no puede habra alguna
solucion para este dilema mio.



¡Una manera muy personal de limpiar los controles de texto! :-)

Siempre que los nombres de los controles tengan su valor por defecto (que
empiezen por «Text»), está bien, pero como tengan otros nombres
(txtNombre,
txtApellido, txtIdCliente, txtLoQueSea, etc.), vas a tener que modificar
el
procedimiento «Limpiar» para llevar a efecto la limpieza, porque repito
que
dicho procedimiento asume que los controles tienen el nombre por defecto,
cosa que opino que no tiene por qué ser así. Un procedimiento genérico
tiene
que servir para todas las circunstancias que se presenten, no para unas
pocas, aunque claro, si sólo lo vas a utilizar tú, y vas a usar los
nombres
por defecto, pues te puede servir.

Form(Text_Num).Text = ""



Esa sintaxis abreviada, en Visual Basic 6.0 equivaldría a lo siguiente:

Form.Controls(Text_Num).Text = ""

que sería lo mismo que ejecutar la siguiente línea:

Form.[_Default](Text_Num).Text = ""

y se permite porque al especificar un índice en el objeto Form, estás
haciendo referencia a la colección «Controls» del objeto «Form», que es la
propiedad predeterminada de dicho objeto [_Default], y a la cual se le
puede
pasar como índice el nombre del control en forma de variable alfanumérica
("Text1", "Text2", etc.), pero en Visual Basic .NET no está permitido
porque
no se puede indexar la clase «Forms.Form», debido a que no tiene una
propiedad predeterminada, como la propiedad [_Default] de Visual Basic
6.0.
Que yo sepa, en VB .NET debes de hacer referencia expresa a la colección
«Controls», y pasarle un índice entero; no puedes abreviar la sintaxis:

Form.Controls(1).Text = ""
Form.Controls(2).Text = ""
Form.Controls(3).Text = ""

Entiendo que hay otras soluciones más eficazes, sobre todo genéricas, que
es
lo importante, para limpiar los controles de texto, como por ejemplo, la
que
te ha explicado Carlos Gómez, u otras que seguramente habrá por ahí.

Enrique Martínez
[MS MVP - VB]

Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado
o
sugerido en el presente mensaje.



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