none
Ayuda con mdi y scroll !!!

    Pregunta

  • Hola a todos, tengo un problema con una aplicación que estoy haciendo, tengo un form mdi y varios form hijos que se
    ejecutan dentro de el mdi, el problema es que cuando muevo esos forms me aparecen las barras de desplazamiento
    en el mdi y eso es lo que no quiero, quiero que no se puedan mover los forms fuera de la pantalla del mdi, el vb 6 lo hacía
    solo, pero en vb 2012 no se como hacerlo.
    Encontré por algún lado este código, que en pricipio funciona, pero hace un efecto gráfico bastante feo, porque si bien
    no deja que el form hijo pase de los límites del mdi, si uno sigue moviendo el mouse hasta el final de la pantalla, hace como
    un efecto de barrido del form hijo. (espero haberme hecho entender)

    Éste es el codigo

     Private Sub Form1_LocationChanged(sender As Object, e As EventArgs) Handles Me.LocationChanged
            ' left possition
            If (Me.Left <= 0) Then
                Me.Location = New Point(0, Me.Location.Y)
                If (Me.Top < 0) Then
                    Me.Top = 0

                ElseIf (Me.Top > ((Me.MdiParent.ClientRectangle.Height - 50) - Me.Height)) Then

                    Me.Top = (Me.MdiParent.ClientRectangle.Height - 30) - Me.Height
                End If

                'End If

                'right
            ElseIf (Me.Right >= Me.MdiParent.ClientRectangle.Width) Then
                Me.Left = (Me.MdiParent.Width - 20) - Me.Width

                'top
            ElseIf (Me.Top < 0) Then
                Me.Top = 0

                'bottom
            ElseIf (Me.Top > ((Me.MdiParent.ClientRectangle.Height - 50) - Me.Height)) Then
                Me.Top = (Me.MdiParent.ClientRectangle.Height - 30) - Me.Height

            End If
        End Sub

    lunes, 20 de mayo de 2013 15:21

Respuestas

Todas las respuestas

  • Estuve pensando un poco, después de descansar los sesos y ojos, y en realidad sería como hacer para que un form mdi no cambie el tamaño cuando muevo un form hijo, osea, el mdi se agranda y le aparecen las scroll cuando llevo el form hijo hacia alguno de los bordes, lo que pretendo es que el mdi se mantenga del mismo tamaño y sin scroll ni vertical ni hotizontal, y que el form hijo no pase de el margen de la pantalla, ya probé ponerle la propiedad autoscroll en false, pero no funciona, alguien de por estos lados sabe como se hace?

    martes, 21 de mayo de 2013 18:59
  • Hola:

     puedes analizar esta conversacion probablemente te sirva:

    como evitar que un Formulario mostrado en un MdiCointaner con un ToolStrip pueda ponerse debajo del ToolStrip


    Saludos desde Monterrey, Nuevo León, México!!!

    • Marcado como respuesta Guillermo Hadad miércoles, 05 de junio de 2013 13:48
    martes, 21 de mayo de 2013 20:17
  • Gracias Luis por responder, he probado lo que me referenciaste, pero es esencialmente el mismo código que tengo (que puse arriba), y obviamente hace el mismo efecto, que ya estoy empezando a pensar si no es mi maquina. O sea, haber si me explico, con el código de arriba, el form hijo no pasa de los bordes de la pantalla, pero suponiendo que hago un click sostenido en el titulo del form hijo para moverlo hacia un lado, o arriba, o donde quieran, si llevo el puntero al borde, el form  hijo no pasa de ese borde, pero hace un efecto gráfico de barrido bastante feo. Perdón me es difícil de explicar.

    martes, 21 de mayo de 2013 22:23