Tengo un formulario con único control tabla, que se creó inicialmente usando el asistente.
Debido a que se tiene que ejecutar en diferentes equipos con diferentes monitores, necesito que el control tabla se adapte al tamaño del formulario al abrirlo.
Es decir, de la misma forma que se maximiza la ventana del formulario, necesito que se maximice el control al área interior del formulario.
He conseguido algo con setPosSize pero al mover el ratón sobre el formulario, se deshace el cambio y vuelve a su tamaño anterior.
Como puedo hacer que se mantenga el nuevo tamaño?
Código: Seleccionar todo
Public Sub AbrirFormLista(Event As Object)
On Error GoTo Err_AbrirFormLista
Dim NomForm as String
Dim FormLista As Object, FormDoc as Object
NomForm = mid(Event.Source.Model.Name,4) ' tomo el nombre del formulario desde el nombre del botón que lo llama
FormDoc =ThisDatabaseDocument.FormDocuments.GetByName(NomForm)
FormDoc.Close
FormDoc.Open
FormDoc.Component.Title = NomForm
FormLista = FormDoc.Component.Drawpage.Forms.getByIndex(0)
Wait EsperaCargaForm ' 100 ms
FormLista.Last
FormLista.First 'this along with .Last above leaves the total number of records in nav bar
Wait EsperaCargaForm ' 100 ms
Call OcultarBarras(True, "N") ' maximiza el form y solo deja la barra de navegación que incluye botones personalizados
Wait EsperaCargaForm ' 100 ms
' Ajuste de tamaño
Dim Fld as Object, Ctl as Object
Dim Ventana As Object, RectVentana As New com.sun.star.awt.Rectangle
Dim RectCtl As New com.sun.star.awt.Rectangle
Ventana = FormDoc.Component.CurrentController.ComponentWindow
RectVentana = Ventana.getPosSize
Fld = FormLista.getByName("Lista") ' "Lista" es el nombre del control tabla
Ctl = FormDoc.Component.getCurrentController().getControl(Fld)
RectCtl = Ctl.getPosSize()
Ctl.setPosSize( RectCtl.X, RectCtl.Y, RectVentana.Width, RectVentana.Height, com.sun.star.awt.PosSize.SIZE )
Exit_AbrirFormLista:
Exit Sub
Err_AbrirFormLista:
MsgBox Err & " - " & LimpiarMensaje(Error)
Resume Exit_AbrirFormLista
End Sub