Ridimensionare la finestra del Dialog da codice
Vai alla navigazione
Vai alla ricerca
Per ridimensionare la finestra del "Dialog" da codice al momento della sua apertura, utilizzeremo le risorse delle Classi "DesktopWatcher" e "DesktopWindows". A tal fine dovranno essere attivati i Componenti gb.desktop e gb.desktop.x11.
Vediamo di seguito un codice commentato, nel quale la finestra del "Dialog" sarà massimizzata a pieno schermo:
Private wa As DesktopWatcher
Private dw As DesktopWindow
Public Sub Form_Open()
' Osserva tutte le finestre, presenti e future, sulla Scrivania:
wa = New DesktopWatcher As "DWatch"
End
Public Sub Button1_Click()
With Dialog
' Il "Titolo" della finestra del "Dialog" deve essere certo e univoco.
' In questo esempio daremo alla finestra di Dialogo il titolo: "Titolo_della_finestra_del_Dialog".; e sarà quello che apparirà sul bordo superiore della finestra del "Dialog" alla sua apertura.
.Title = "Titolo_della_finestra_del_Dialog"
If .OpenFile() Then Return
End With
End
Public Sub DWatch_Windows() ' Se la lista delle finestre sulla Scrivania è cambiata...
' ...allora controlla se la finestra, avente Titolo "Titolo_della_finestra_del_Dialog", si è aperta:
If Desktop.FindWindow("Titolo_della_finestra_del_Dialog", Null, Null).Count > 0 Then
' In caso affermativo, la finestra del "Dialog" viene ridimensionata (in questo caso a schermo pieno):
With dw = New DesktopWindow(Desktop.FindWindow("Titolo_della_finestra_del_Dialog", Null, Null)[0])
.Resize(Screen.AvailableWidth, Screen.AvailableHeight)
End With
Endif
End
Oppure usando un Timer per individuare con la Proprietà ".ActiveWindow" della Classe Desktop il numero identificatore della finestra Dialog, da passare successivamente a un Oggetto di tipo DesktopWindow, per ridimensionare mediante il Metodo ".Resize()" la predetta finestra Dialog.
Private Timer1 As Timer Public Sub Button1_Click() ' Crea e avvia il "Timer": With Timer1 = New Timer As "Timer1" .Delay = 300 .Start End With With Dialog If .OpenFile() Then Return End With End Public Sub Timer1_Timer() Timer1.Stop Dim dw As DesktopWindow ' Quando sarà stata aperta la finestra del "Dialog", il Metodo "Desktop.ActiveWindow" ne individuerà la finestra e quindi il suo ID: With dw = New DesktopWindow(Desktop.ActiveWindow) ' Procede al ridimensionamento della finestra del "Dialog": .Resize(Screen.AvailableWidth, Screen.AvailableHeight) End With End