none
Posicion de los objetos agregados dinamicamente a un Panel RRS feed

  • Pregunta

  • Buenas Tardes / Días / Noches a todos!

    Tengo un problema a la hora de posicionar los objetos que voy agregando dinámicamente en un panel.

    Sencillamente tengo este código, que hace que cuando toques un boton agregue un control de usuario sobre un panel, el cual tiene la propiedad de AutoScroll en True.

    private void button1_Click(object sender, EventArgs e)
            {                           
                UserControl1 UC = new UserControl1();
                panel1.Controls.Add(UC);
                UC.Top = panel1.Controls.Count * (UC.Height + 3);          
                UC.StyleChanged += new EventHandler(this.Uc_Click);                        
                UC.Show();            
            }

    La idea es que cuando toques el boton button1, te cree un nuevo Frame y te lo pegue en el panel con una distancia de 3 unidades más abajo asi se ve la separación. Hasta ahí anda todo bien y no hay problema.

    Mi inconveniente está en que cuando agrego otro Frame habiendo bajado antes la ScrollBar, me agrega el Frame, pero me lo agrega varias unidades más abajo, no respetando el top real del panel, tal así como si el tope del panel fuera el tope relativo que estoy viendo en ese momento debido a que bajé con la ScrollBar para abajo. 

    Espero que se entienda mi duda! Recuerdo que una vez lo había solucionado! Espero sepan ayudarme!

    Desde ya muchas gracias por su tiempo!!

    • Cambiado webJoseModerator miércoles, 31 de octubre de 2012 23:31 (De:Lenguaje C#)
    martes, 30 de octubre de 2012 19:46

Respuestas

  • Si estuve viendo lo del panel! Tal vez me habría convenido empezar usando ese jajaja!

    De todas formas seguí tocando un poco más el código y vi que para que no tome tal efecto, en lugar de preguntar por el top, hay que preguntar por el buttom del último control del panel, y agregas el nuevo objeto a partir de éste... De esta forma se agrega siempre debajo sin ningún problema!

    Gracias de todas formas por tu pronta respuesta y empezaré a investigar el TableLayoutPanel que no lo use nunca! 

    • Marcado como respuesta Cabeza92 miércoles, 31 de octubre de 2012 14:54
    miércoles, 31 de octubre de 2012 14:53

Todas las respuestas

  • hola

    no has evaluado suar el control

    TableLayoutPanel

    con este podrias definir un layput mucho mas ordenado defineindo filas y columnas y ubicar los controles alli para que sea homogenea la distribucion, y no tneer que andar definiendo posiciones por cada control

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    martes, 30 de octubre de 2012 20:04
  • Si estuve viendo lo del panel! Tal vez me habría convenido empezar usando ese jajaja!

    De todas formas seguí tocando un poco más el código y vi que para que no tome tal efecto, en lugar de preguntar por el top, hay que preguntar por el buttom del último control del panel, y agregas el nuevo objeto a partir de éste... De esta forma se agrega siempre debajo sin ningún problema!

    Gracias de todas formas por tu pronta respuesta y empezaré a investigar el TableLayoutPanel que no lo use nunca! 

    • Marcado como respuesta Cabeza92 miércoles, 31 de octubre de 2012 14:54
    miércoles, 31 de octubre de 2012 14:53