Rubrik: Oberfläche · Fenster | VB-Versionen: VB.NET | 23.01.08 |
Form anzeigen ohne dieser den Fokus zu geben (.NET) Mit diesem Tipp lässt sich eine zweite Form laden und anzeigen, wobei jedoch die aufrufende Form den Fokus behält. | ||
Autor: mikeb69 | Bewertung: | Views: 14.647 |
www.powerdesktop-online.de | System: WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Manchmal will man eine zweite Form anzeigen, dieser aber den Fokus verweigern, d.h. die aufrufende Form soll weiterhin aktiv bleiben und den Fokus behalten. Diese Aufgabe lässt sich bspw. mit Hilfe der "ShowWindow" API-Funktiont erledigen. Was aber, wenn man keine API's verwenden will, um bspw. kompatibel mit Mono (VB.NET unter Linux und Mac) zu bleiben?
In diesem Fall hilft folgender Code weiter.
Fügen Sie einfach folgenden Code in die aufzurufende Form ein, dann wird diese, beim Aufruf, den Fokus nicht bekommen.
Protected Overrides ReadOnly Property ShowWithoutActivation() As Boolean Get Return True End Get End Property
Um nachfolgendes Beispiel ausprobieren zu können, benötigen Sie zwei Forms und einen Button auf Form1.
Form1:
Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click ' zweite Form anzeigen Form2.Show() End Sub End Class
Form2:
Public Class Form2 ' Verhindert, dass die Form beim Aufruf aktiviert wird ' und den Fokus bekommt. Protected Overrides ReadOnly Property ShowWithoutActivation() As Boolean Get Return True End Get End Property End Class