miércoles, 11 de julio de 2012

Obtener la posicion de un control respecto al parentform

Bueno, aquí un breve código que utilicé para obtener la posición de un control WinForm con respecto a su ParentForm, es útil si se quieren poner controles dinámicamente dentro de un formulario y cambiar su posición (por ejemplo posicionándolo al lado de otro control)... con c# .Net



using System.Drawing;
using System.Windows.Forms;

...

public   class UserControlGeneral : UserControl
    {
        /// <summary>
        /// Busca el Point donde está ubicado el control respecto del ParentForm
        /// </summary>
        /// <returns>Point</returns>
        protected Point buscarLocationRespectoParentForm()
        {
            return buscarLocationRespectoParentForm(this);
        }

        /// <summary>
        /// Busca el Point donde está ubicado el control que recibe de parámetro respecto del ParentForm
        /// </summary>
        /// <param name="control">Control al que se le quiere encontrar la posición</param>
        /// <returns>Point</returns>
        protected Point buscarLocationRespectoParentForm(Control control)
        {
            if (control.Parent == this.ParentForm)
            {
                return new Point(control.Location.X, control.Location.Y);
            }
            else
            {
                Point p = buscarLocationRespectoParentForm(control.Parent);
                p.X += control.Location.X;
                p.Y += control.Location.Y;
                return p;
            }
        }
    }





No hay comentarios:

Publicar un comentario