Während zum Beispiel die Inputbox die Möglichkeit
bietet, die X/Y Koordinaten anzugeben, haben Sie beim Common Control (Datei öffnen ;
Datei speichern ...) standardmäßig keine Möglichkeit dies zu übergeben, es wird immer
an der linken,oberen Ecke der Form geöffnet, aus dem es aufgerufen wird und wenn Ihr
Projekt im Vollbild läuft, schaut dies nicht besonders aus, wenn der Dialog in der Ecke
hängt. Aber damit ist jetzt Schluß.
Allerdings kann ich Ihnen in diesem Fall nicht mit undokumentierten API Funktionen oder
versteckten Common Control Parametern dienen, sondern wir machen uns genau das zum
Vorteil, was ich oberhalb schon erwähnt hatte.
Das Control wird immer in der linken, oberen Ecke von der Form angezeigt,
die es aufruft. !
Also nutzen wir einfach eine eigene Form für unser Control und rufen bei
Bedarf nicht mehr das Control, sondern die Form auf, die das Control enthält.
Und eine Form zu zentrieren, dürfte Ihnen nicht schwerfallen.
Der ganze Vorgang könnte dann in etwa so aussehen. ( Bsp. Datei öffnen )
Unsere Form, die das Control enthält, heißt im Beispiel Hilfsform
Private Sub Command1_Click()
'Commandbutton auf der Hauptform ' Zunächst die
Hilfsform laden, auf der sich das
' CommonDialog-Steuerelement befindet
Load HilfsForm
' Nun wird diese Form positioniert und verkleinert
HilfsForm.Move Screen.Width / 4, Screen.Height / 4, 1, 1
' "Öffnen"-Dialog initialisieren
HilfsForm.CommonDialog1.Flags = cdlOFNHideReadOnly
HilfsForm.CommonDialog1.Filter = "Alle Dateien (*.*)|*.*|"
HilfsForm.CommonDialog1.FilterIndex = 2
' "Öffnen"-Dialog aufrufen
HilfsForm.CommonDialog1.ShowOpen
' Den ausgewählten Dateinamen z.B. in einer Variable
speichern
Dateiname = HilfsForm.CommonDialog1.filename
' zuletzt wird die Hilfsform wieder entladen
Unload HilfsForm
Set HilfsForm = Nothing
End Sub
Auf das es nie wieder in der Ecke hängende Dialogboxen gibt! |