Current page: Code snippets » C#, .NET » FocusMe-Funktion

FocusMe-Funktion

Bringt ein Programmfenster in den Vordergrund. Die Form.Focus-Methode tut das ja leider nicht, wenn gerade eine andere Anwendung aktiv ist. Diese Funktion verwendet dafür eine Win32-API-Funktion, um das Vordergrundfenster zu ändern. Es kann sein, dass diese Vorgehensweise gegen Microsoft-Designrichtlinien verstößt, da die aufrufende Anwendung ohne Schutz sofort den Fokus erhält. In manchen Fällen ist das aber erwünscht. Wenn dieser Schutz greift, wird ein Fenster üblicherweise nicht in der Vordergrund gebracht, sondern der Taskbar-Eintrag blinkt. Aber auch das passiert bei Form.Focus() leider nicht.

[o] Download (CS-Datei, < 1 kB)

[o] Source code view: FocusMe.cs
// Diese Funktion ist dafür vorgesehen, in eine Form-Klasse aufgenommen zu werden.
// Man kann sie aber auch allgemeiner verfassen, indem man das Form als Parameter
// übergibt und dann auf Form.Handle als Window-Handle zugreift.

[DllImport("user32.dll")]
public static extern bool SetForegroundWindow(IntPtr hWnd);

private bool FocusMe()
{
    return SetForegroundWindow(Handle);
}

Licence, terms of use

This programme is freely available as source code and compiled version, without restrictions (“public domain”). There is no warranty, not even for merchantability or fitness for a particular purpose. I am not liable for any damage caused through appropriate or inappropriate use.

Ausblenden
Statistik wird geladen...