martes, 20 de mayo de 2008

Como obtener la forma padre de un control en C#

En WinForms no existe una forma directa, o que por lo menos yo conozca de traer todos los controles de algún tipo específico para un pre o post procesamiento.

Así que se tienen que recorrer todos los controles para ir procesando el tipo de control que se necesita.

Para esto se pueden encontrar en la red varios artículos.

Sin embargo, en el proyecto en el que me encuentro colaborando actualmente necesitaba hacer algo similar: Descubrir la Forma a la que pertenece un control.

Estuve buscando algo en la red que me pudiera asistir, pero no encontré nada que me fuera útil.

Así que me dispuse a escribir un método que me ayudara en mi tarea, y este es el resultado:

private Form DiscoverParentForm(Control control)
{
    Control parent = control.Parent;
    Type controlType = parent.GetType();
    
    if (!controlType.IsSubclassOf(typeof(Form)))
    {
        parent = DiscoverParentForm(parent);
    }
    
    return (Form)parent;
}


Si tiene que llevar a cabo esta tarea, pueden usar este método libremente, buena suerte!!!!!.

No hay comentarios:

Publicar un comentario