Dieser Tipp ist hat zwei praktische Elemente:
Extension Methods müssen in VB.NET in Modulen abgelegt werden. Wir erstellen also ein Modul mod_Extension_Form und ergänzen folgenden Code: Module mod_Extension_Form ' API-Funktion, um das Fenster-Handle des Fensters im ' Vordergrund zu bestimmen Private Declare Function GetForegroundWindow Lib "user32" _ Alias "GetForegroundWindow" () As IntPtr Private Function GetFGWindowHandle() As IntPtr Dim fg_hwnd As IntPtr = GetForegroundWindow() Return fg_hwnd End Function ' Deklaration der Extension-Method durch Attribut und Funktions-Kopf ' Bei Extension-Methods gibt der Datentyp des ersten Parameters in der ' Liste an, welche Klasse erweitert werden soll. ' (Hier die Klasse Windows.Forms.Form) <System.Runtime.CompilerServices.Extension()> _ Friend Function IsMeForeGroundWindow(ByVal f As Form) As Boolean ' Auswertung ob das Handle des aktiven Fensters gleich dem des ' eigenen Fensters ist ' (--> Das eigene Fenster ist im Vordergrund) Return Not CBool(f.Handle.ToInt32 Xor GetFGWindowHandle().ToInt32) End Function End Module Nun testen wir die Methode und bereiten die Form so auf, dass man den Wechsel der beiden Zustände schön beobachten kann. Wir fügen folgende Steuerelemente zu Form1 hinzu:
Wir ergänzen den Code von Form1 wie folgt: Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MyBase.Load ' Unser Fenster wird immer angezeigt Me.TopMost = True ' Wir starten den Timer Timer1.Enabled = True End Sub Private Sub Timer1_Tick(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Timer1.Tick ' Wir schreiben in die TextBox, ob unser Fenster das ' ForeGroundWindow ist (Ausgabe True) ' oder nicht (Ausgabe False) TextBox1.Text = Me.IsMeForeGroundWindow.ToString End Sub End Class Nun haben wir unsere erste Extension Method fertig gestellt und auf ihre Praxis-Tauglichkeit getestet. Dieser Tipp wurde bereits 13.199 mal aufgerufen. Voriger Tipp | Zufälliger Tipp | Nächster Tipp
Anzeige
Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv Vol.6 (einschl. Beispielprojekt!) Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m. |
sevISDN 1.0 Überwachung aller eingehender Anrufe! Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Tipp des Monats April 2024 Skyfloy Chart von Microsoft und dazu noch gratis Tutorial für Microsoft Chart Controls für Microsoft .NET Framework 3.5 sevZIP40 Pro DLL Zippen und Unzippen wie die Profis! Mit nur wenigen Zeilen Code statten Sie Ihre Anwendungen ab sofort mit schnellen Zip- und Unzip-Funktionen aus. Hierbei lassen sich entweder einzelnen Dateien oder auch gesamte Ordner zippen bzw. entpacken. |
||||||||||||||||
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein. |