Samstag, 4. Februar 2012

Home
Tipps
Bücher
Software
News / Links
Hilfe
Impressum

Sponsored by
QualityHosting

Tipp/Trick
Fenster anzeigen, ohne es zu aktivieren
Wenn Sie ein Access-Fenster eines Formulars oder Berichts mit Hilfe der „Visible-Eigenschaft“ sichtbar machen, aktiviert Access das Fenster automatisch. Das vorher geöffnete Formular verliert dadurch den Eingabefokus.

Um dies zu verhindern, setzen Sie den Eingabefokus mit dem Befehl SelectObject zurück:

Forms![frmUhrzeit].Visible = True     'Formular anzeigen und aktivieren
Domd.SelectObject acForm, "frmEingabe 'Formular wieder aktivieren

Mit dieser Methode entsteht allerdings ein störendes Geflacker, so dass der Fokus hin- und hergeschickt wird.

Diesem Umstand kann jedoch durch die Verwendung der bekannten Funktion SetWindowPos und einiger Konstanten abgeholfen werden.

Durch Angabe geeigneter Flags im letzten Parameter können Sie SetWindowPos dazu bringen, ein Fenster einzublenden, ohne es zu aktivieren. Dieses Verhalten wäre beispielsweise für Formulare interessant, die einen Status (z.B. die Uhrzeit) anzeigen. Folgendes Beispiel setzt die SetWindowPos-Funktion ein, um ein verborgendes Formular frmUhrzeit einzublenden, ohne dass das aktuelle Formular den Eingabefokus verliert:

Private Sub btnShowTime_Click()

    FensterAktivieren Forms![frmUhrzeit]

End Sub

Die Prozedur FensterAktivieren sieht wie folgt aus:

Public Const SWP_NOMOVE = &H2
Public Const SWP_NOSIZE = &H1
Public Const SWP_NOZORDER = &H4
Public Const SWP_SHOWWINDOW = &H40
Public Const SWP_NOACTIVATE = &H10

Declare Function SetWindowPos Lib "user32" _
    Alias "SetWindowPos" (ByVal hwnd As Long, _
    ByVal hWndInsertAfter As Long, ByVal x As Long,_
    ByVal y As Long, ByVal cx As Long,
    ByVal cy As Long, ByVal wFlags As Long) As Long

Public Function FensterAktivieren(F As Form)

    SetWindowPos F.hwnd, 0, 0, 0, 0, 0, SWP_NOSIZE _
                            Or SWP_NOMOVE _
                            Or SWP_NOZORDER _
                            Or SWP_SHOWWINDOW Or SWP_NOACTIVATE

End Function

Die Flags SWP_NOSIZE und SWP_NOMOVE sorgen dafür, dass die Größe und Position des Fensters nicht verändert werden.


Ein Service der TriniDat Software-Entwicklung GmbH - Am Wehrhahn 45 - 40211 Düsseldorf

  Suche
Suche starten
  Service
Leserbrief / Frage zu Access
Kontakt
  NewsLetter
NewLetter bestellen
NewsLetter abbestellen
  Partner-Seiten
HyperLink

www.trinidat.de


HyperLink

www.fulldotnet.de