Foro de elhacker.net

Programación => .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
  1. If Me.FindControl("Checkbox1") IsNot Nothing Then
'FindControl' is not a member of 'WindowsApplication19.Form1'

Y así:
Código
  1. 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
  1. foreach (Control c in panel1.Controls)
  2. {
  3.  
  4. }

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
  1.        For Each c As Control In Panel1.Controls
  2.            If c = Nothing Then MessageBox.Show("nada")
  3.        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
  1.        Dim num = 0
  2.        For Each c As CheckBox In Panel1.Controls
  3.            num = +1
  4.        Next
  5.        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
  1. 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
  1. PADRE.Controls.Find("Ejemplo", True)
  2.  
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
Código
  1. PADRE.Controls.Find("Ejemplo", True)
  2.  
Devuelve un Array de Controls en el PADRE, que coincidieron con "Ejemplo".

Gracias.