SoloCodigo

CLR: .Net / Mono / Boo / Otros CLR => C# => Mensaje iniciado por: lorenzobrion en Martes 11 de Enero de 2011, 00:31

Título: Form adyacente a otro
Publicado por: lorenzobrion en Martes 11 de Enero de 2011, 00:31
Bien, lo que quiero hacer debe ser muy simple pero no he descubierto cómo:

Al clickear un button en un formulario dado, debe aparecer otro formulario más pequeño por un lado, que esté -y se desplaze- siempre adyacente a él. Imagino que la solución debe remitirse a los BoundSettings pero no logro dar pie.
Título: Re: Form adyacente a otro
Publicado por: Altrox en Martes 11 de Enero de 2011, 14:33
Hola buenas,
lo que puedes hacer es crear un metodo en el formulario hijo que quieres mover con un parametro Point.

Luego, en el formulario principal añades el evento LocationChanged y en este llamas al metodo del form hijo pasandole como parametro la posicion del form padre mas x e y.
Por ejemplo, aquí el formulario hijo estará en todo momento en el lado derecho del padre.
Form Padre
Código: C#
  1.  
  2. private void Padre_LocationChanged(object sender, EventArgs e)
  3. {
  4. hijo.setLocation(new Point(this.Location.X + this.Width, this.Location.Y));
  5. }
  6.  
  7.  

Form Hijo
Código: C#
  1.  
  2. public void setLocation(Point pos)
  3. {
  4. this.location = pos;
  5. }
  6.  
  7.  

Ah, si ves que no "te hace caso" de esta manera, intenta poner en el form hijo WindowsDefaultLocation = Manual. Luego antes de mostrar el form hay que llamar a setLocation.

Bueno, a ver si te sirve.
Saludos!
Título: Re: Form adyacente a otro
Publicado por: lorenzobrion en Miércoles 12 de Enero de 2011, 23:23
Funcionó a la perfección.
Sabía que no debía ser complicado.

Muchas gracias! :good: