(solucionado) Buscar control dentro del form...

Iniciado por Eleкtro, 21 Noviembre 2012, 12:41 PM

0 Miembros y 1 Visitante están viendo este tema.

Eleкtro

He probado así:

Código (vbnet) [Seleccionar]
If Me.FindControl("Checkbox1") IsNot Nothing Then
'FindControl' is not a member of 'WindowsApplication19.Form1'

Y así:
Código (vbnet) [Seleccionar]
If Me.Panel1.Contains("Checkbox1") = False Then
Value of type 'String' cannot be converted to 'System.Windows.Forms.Control'.

EDITO: Es un winform

¿Soluciones porfavor?








Novlucker

#1
¿No miraste mucho mi code anterior no? Ahí tenías una pista :silbar:
Te lo dejo en C#
Código (csharp) [Seleccionar]
foreach (Control c in panel1.Controls)
{

}


También puedes utilizar find sobre la lista de controles, o bien directamente acceder por el nombre o índice.

Saludos
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

Eleкtro

#2
gracias novlucker
uf, pero ahora como hago para saber si el control existe o no?

Código (vbnet) [Seleccionar]
       For Each c As Control In Panel1.Controls
           If c = Nothing Then MessageBox.Show("nada")
       Next


tambien he probado con c.Name, pero al no haber ningún control... no muestra NADA.

EDITO: Creo que he expuesto mal mi duda, lo que necesito saber es si existe un control de tipo "checkbox" en el form, no buscarlo.

Edito 2: ya no importa, lo he hecho de forma "sucia" xD:

Código (vbnet) [Seleccionar]
       Dim num = 0
       For Each c As CheckBox In Panel1.Controls
           num = +1
       Next
       If num = 0 Then  ' no existe


Gracias!








Novlucker

Creo que no estas entendiendo, si iteras sobre los controles con un for each, entonces siempre va a retornar algo
Prueba con un find :P

Saludos
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

HdM

Hola.

Puedes utilizar lo que indicabas:

Código (vbnet) [Seleccionar]
If Me.Panel1.Contains("Checkbox1") = False Then

Pero sin poner el control entre comillas.

Saludos.

- Nice to see you again -

Keyen Night

#5
Código (vb.net) [Seleccionar]
PADRE.Controls.Find("Ejemplo", True)

Devuelve un Array de Controls en el PADRE, que coincidieron con "Ejemplo".

Ya Novlucker había dado el nombre de la función ;).
La Fé Mueve Montañas...
                                    ...De Dinero

La programación es más que un trabajo es más que un hobby es una pasión...

Eleкtro

Cita de: Keyen Night en 21 Noviembre 2012, 14:46 PM
Código (vb.net) [Seleccionar]
PADRE.Controls.Find("Ejemplo", True)

Devuelve un Array de Controls en el PADRE, que coincidieron con "Ejemplo".

Gracias.