Eval

29/03/2005 - 21:11 por Leonzio | Informe spam
Existe en vb.net alguna funcion que haga lo mismo que el
eval de jscript?
es decir que ejecute dinamicamente una linea de codigo que
esta dentro de un string

el tema es que tengo n textbox llamados:

txtCod1
txtCod2
txtCod3
...
txtCodn

y quiero meterlos dentro de un For para darles el mismo
tratamiento.
si no existe la funcion que busco de que manera podria
hacerlo

gracias!
 

Leer las respuestas

#1 Leonardo Azpurua
30/03/2005 - 07:41 | Informe spam
"Leonzio" escribió en el mensaje
news:00c401c53493$16900020$

el tema es que tengo n textbox llamados:

txtCod1
txtCod2
txtCod3
...
txtCodn

y quiero meterlos dentro de un For para darles el mismo
tratamiento.
si no existe la funcion que busco de que manera podria
hacerlo



Hola, Leoncio:

Si te entiendo, quieres ejecutar una acción sobre un conjunto de controles.

Una opción (nunca la he usado, pero se que existe) es utilizar un componente
llamado TextBoxArray, más o menos equivalente a una matriz de controles.

Las Formas en VB.NET siguen exponiendo la coleccion Controls, a traves de la
cual puedes acceder a todos los controles contenidos en ellas. A diferencia
de VB6, donde los elementos podían ser indexados por un indice escalar o por
nombre Me.Controls("txtCod" & i.ToString.Trim), en VB.NET solo puedes
referirte a ellos mediante el indice.

Entonces puedes escribir una función que te devuelva un Control, dado su
nombre (la declaro como miembro estático de una clase porque es un mecanismo
de uso muy común):

Class FormUtils
Public Shared Function FindControl(ByVal f As Form, ByVal controlName As
String) As Control
For Each c As Control In f.Controls
If c.Name = controlName Then Return c
Next
Return Nothing
End Function
End Class

Y desde la forma podrías escribir (por ejemplo):

Sub Limpiar txtCod()
Dim i
For i = 1 To 4
DirectCast(FormUtils.FindControl(Me, "txtCod" & i.ToString.Trim()),
TextBox).Text = ""
Next
End Sub

Imagino que habrá alguna manera mejor de hacerlo (es sorprendente -y
abrumadira- la cantidad de opciones que te ofrece el Framework) pero
mientras la descubres podrías usar esta.


Salud!

Preguntas similares