![]() |
Tipp 0045
|
Form ohne Titelleiste verschieben
|
 |
|
Autor/Einsender: Datum: |
|
Michael Werner 18.06.2004 |
|
Entwicklungsumgebung: |
|
VB.Net 2003 |
Framework: |
|
1.1 |
|
|
In VB 6 musste man noch APIs bemühen, um ein Fenster ohne Titelleiste verschieben zu können.
In VB.Net kann dies mit einer Überschreibung von Methoden und dem Einsatz der Schlüsselwörter
Overloads und MyClass gelöst werden.
|
Mit dem Overloads-Schlüsselwort werden hier Methoden deklariert, die zwar den
Namen eines vorhandenen Members tragen, aber eine vom ursprünglichen Member abweichende
Argumentliste aufweisen. Abgeleitete Klassen erben Eigenschaften und Methoden, die in ihrer
Basisklasse definiert sind. Dies ist praktisch, da Sie diese Elemente wiederverwenden können,
sobald sie für die von Ihnen verwendete Klasse erforderlich sind.
|
|
|
Public Class Form1
Inherits System.Windows.Forms.Form Vom Windows Form Designer generierter Code
Private CurrentPosition As New System.Drawing.Point
Private MouseButton As _
System.Windows.Forms.MouseButtons = Nothing
Private Overloads Sub OnMouseDown( _
ByVal Sender As System.Object, _
ByVal e As System.Windows.Forms.MouseEventArgs) _
Handles MyBase.MouseDown
MyClass.MouseButton = e.Button()
With MyClass.CurrentPosition
.X = e.X()
.Y = e.Y()
End With
End Sub
Private Overloads Sub OnMouseUp( _
ByVal Sender As System.Object, _
ByVal e As System.Windows.Forms.MouseEventArgs) _
Handles MyBase.MouseUp
MyClass.MouseButton = Nothing
End Sub
Private Overloads Sub OnMouseMove( _
ByVal Sender As System.Object, _
ByVal e As System.Windows.Forms.MouseEventArgs) _
Handles MyBase.MouseMove
Select Case MyClass.MouseButton
Case Is = MouseButtons.Left
MyClass.Top = MyClass.Cursor.Position.Y() - _
MyClass.CurrentPosition.Y()
MyClass.Left = MyClass.Cursor.Position.X() - _
MyClass.CurrentPosition.X()
Case Is = Nothing
Exit Sub
End Select
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
Label1.Text = "FormBorderStyle = None"
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click
MyClass.Close()
End Sub
End Class
|
|
|
|
|
Windows-Version |
98/SE |
 |
|
ME |
 |
|
NT |
 |
|
2000 |
 |
|
XP |
 |
|
Vista |
 |
|
Win
7 |
 |
|
|
|
Download (6,2 kB)
|
Downloads bisher: [ 825 ]
|
|
|