Test Foro de elhacker.net SMF 2.1

Programación => Programación General => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: Eleкtro en 21 Noviembre 2012, 12:41 PM

Título: (solucionado) Buscar control dentro del form...
Publicado por: Eleкtro en 21 Noviembre 2012, 12:41 PM
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?
Título: Re: Buscar control dentro del form...
Publicado por: Novlucker en 21 Noviembre 2012, 13:06 PM
¿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
Título: Re: Buscar control dentro del form...
Publicado por: Eleкtro en 21 Noviembre 2012, 13:11 PM
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!
Título: Re: Buscar control dentro del form...
Publicado por: Novlucker en 21 Noviembre 2012, 13:19 PM
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
Título: Re: Buscar control dentro del form...
Publicado por: HdM en 21 Noviembre 2012, 13:24 PM
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.
Título: Re: Buscar control dentro del form...
Publicado por: 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".

Ya Novlucker había dado el nombre de la función ;).
Título: Re: Buscar control dentro del form...
Publicado por: Eleкtro en 21 Noviembre 2012, 14:58 PM
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.