none
Como colocar formulario hijo al lado derecho del form padre mdi RRS feed

  • Pregunta

  • Quiero que el formulario hijo cuando lo llame al menu aparezca al lado derecho (dentro del MDI)

    Yo actualmente lo tengo CenterScreen pero necesito que aparezca a la derecha no al centro, se puede?

    lunes, 27 de febrero de 2017 21:13

Respuestas

  • Hola Javier Rocco,

    Entonces tendrías que usar la propiedad  StartPosition con el valor 'Manual'.

    Dim fh As New FormHijo
    fh.MdiParent = Me
    fh.StartPosition = FormStartPosition.Manual
    fh.Location = New Point(Me.ClientSize.Width - fh.Width, 0)
    fh.Show()

    - Dónde el form hijo se mostrará en la parte derecha con un top = 0.

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    • Marcado como respuesta Javier Roque lunes, 27 de febrero de 2017 21:35
    lunes, 27 de febrero de 2017 21:33
  • Hola Javier Rocco,

    La verdad no me había percatado de ello (ya que no había probado el código :/ ). Ahora que lo veo cierta parte del borde se oculta, esto se debe a que el borde interno del MdiContainer es tridimensional y esto afecta al resultado.

    Podrías obtener el largo del borde y restarlo también :

    New Point(Me.ClientSize.Width - (fh.Width + (SystemInformation.Border3DSize.Width * 2)), 0)

    Aunque el valor que retorna el borde es 2, también podrías agregarle directamente. (2 bordes = 2*2 = 4)

    fh.Location = New Point(Me.ClientSize.Width - (fh.Width + 4), 0)


    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    • Marcado como respuesta Javier Roque miércoles, 15 de marzo de 2017 13:11
    miércoles, 15 de marzo de 2017 3:19

Todas las respuestas

  • Hola Javier Rocco,

    Entonces tendrías que usar la propiedad  StartPosition con el valor 'Manual'.

    Dim fh As New FormHijo
    fh.MdiParent = Me
    fh.StartPosition = FormStartPosition.Manual
    fh.Location = New Point(Me.ClientSize.Width - fh.Width, 0)
    fh.Show()

    - Dónde el form hijo se mostrará en la parte derecha con un top = 0.

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    • Marcado como respuesta Javier Roque lunes, 27 de febrero de 2017 21:35
    lunes, 27 de febrero de 2017 21:33
  • Hola Joel reabriendo este temita ojala lo puedas ver, el formulario se va muy a la derecha lo cual parte del formulario se queda metido en la pantalla como podria hacer para k no se va mas alla del form MDI sino que llegue al tope de este del lado derecho.

    Gracias

    miércoles, 15 de marzo de 2017 2:23
  • Hola Javier Rocco,

    La verdad no me había percatado de ello (ya que no había probado el código :/ ). Ahora que lo veo cierta parte del borde se oculta, esto se debe a que el borde interno del MdiContainer es tridimensional y esto afecta al resultado.

    Podrías obtener el largo del borde y restarlo también :

    New Point(Me.ClientSize.Width - (fh.Width + (SystemInformation.Border3DSize.Width * 2)), 0)

    Aunque el valor que retorna el borde es 2, también podrías agregarle directamente. (2 bordes = 2*2 = 4)

    fh.Location = New Point(Me.ClientSize.Width - (fh.Width + 4), 0)


    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    • Marcado como respuesta Javier Roque miércoles, 15 de marzo de 2017 13:11
    miércoles, 15 de marzo de 2017 3:19
  • Pense que el borde del MDI es el que se engrosaba pero es el del formulario hijo bueno se ve mejor nada mas que un lado es mas ancho al otro pero a la vista no se, observando bien si porque queria ver el efecto que este codigo producia

    fh.Location = New Point(Me.ClientSize.Width - (fh.Width + 4), 0)

    Gracias Nuevamente.


    miércoles, 15 de marzo de 2017 13:11