Pienso que tendrías que diseñar una matriz de Top y Left relacionada con el MDI.Top y el MDI.Left. Tendrías que ir incrementando la matriz con el Top igual al del elemento precedente + 20, por ejemplo; igual el Left... cada vez que abrieras un nuevo formulario se incrementaría en 1 la variable nForm, y le asignarías un Me.Top = aTop(nForm)... y Me.Left = aLeft(nForm)
De esta forma cada vez iría presentándose el formulario más a la derecha y más abajo, como te hace ahora. Pero cada vez que cierres un formulario, reducirías el valor de los items de esas matrices (aTop y aLeft)... y moverías todos los formularios que fueran posteriores al que borras...
Un tanto complicadillo, como puedes comprobar, pero lo puedes conseguir con ingenio y paciencia. |