VB-Homepage Tipp 337

Zentrieren des Common Controls

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!


Tipp-Download

Quelle :

Zurück zur Übersichtsseite