vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevAniGif - als kostenlose Vollversion auf unserer vb@rchiv CD Vol.5  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   RSS-Feeds  | Newsletter  | Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2018
 
zurück
Rubrik: Oberfläche · Fenster   |   VB-Versionen: VB2005, VB200815.12.08
Eine eigene Titelleiste für .NET-Anwendungen

Dieser Tipp zeigt eine Möglichkeit, wie man seine eigene Titelleiste für .NET Anwendungen erstellen kann.

Autor:   Florian KolbBewertung:     [ Jetzt bewerten ]Views:  14.689 
www.fk-freeware.de.vuSystem:  Win2k, WinXP, Vista, Win7, Win8, Win10 Beispielprojekt auf CD 

Dieser Tipp ist für alle, die mal etwas anderes ausprobieren wollen: eine eigene Titelleiste.

Erst mal müssen wir die normale Titelleiste wegbekommen. Das geht ganz einfach: Die Eigenschaft "FormBorderStyle" der Form auf "None" stellen.

Damit wir aber auch eine neue Titelleiste haben, muss noch ein passendes "Bild" in die obere Ecke der Anwendung, also: ein Panel-Control mit dem Namen "Title" auf die Form, das Hintergrundbild des Panels mit dem Bild versehen und fertig.

Was aber muss die Titelleiste eigentlich können? Sie muss das gesamte Fenster verschieben, wenn man es mit der Maus zieht. Also muss dieser Code am Anfang definiert werden:

Public Class Form1
 
  ' API-Funition zum Verschieben des Fensters
  Private Declare Function ReleaseCapture _
    Lib "user32" () As Integer
 
  Private Declare Function SendMessage _
    Lib "user32" Alias "SendMessageA" ( _
    ByVal hwnd As Integer, _
    ByVal wMsg As Integer, _
    ByVal wParam As Integer, _
    ByRef lParam As Object) As Integer
 
  Private Const WM_NCLBUTTONDOWN = &HA1
  Private Const HTCAPTION = 2

Jetzt muss für die Titelleiste, also den Panel "Title", nur noch ein MouseDown-Event deklariert werden, damit man das Fenster auch verschieben kann:

  Private Sub Title_MouseDown(ByVal sender As Object, _
    ByVal e As System.Windows.Forms.MouseEventArgs) Handles Title.MouseDown
 
    Call ReleaseCapture()
    SendMessage(Me.Handle.ToInt32, WM_NCLBUTTONDOWN, HTCAPTION, 0)
  End Sub
End Class

Damit der Benutzer die Anwendung schließen und minimieren kann, wäre es natürlich gut, zwei Buttons zu definieren. Am Ende noch den Namen Ihres Programms auf den Panel "Title" geschrieben und fertig!

Dieser Tipp wurde bereits 14.689 mal aufgerufen.

Voriger Tipp   |   Zufälliger Tipp   |   Nächster Tipp

Über diesen Tipp im Forum diskutieren
Haben Sie Fragen oder Anregungen zu diesem Tipp, können Sie gerne mit anderen darüber in unserem Forum diskutieren.

Aktuelle Diskussion anzeigen (2 Beiträge)

nach obenzurück


Anzeige

Kauftipp Unser Dauerbrenner!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.
 
   

Druckansicht Druckansicht Copyright ©2000-2018 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
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.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel