ヘッダー

VB.NET 2002, VB.NET 2003, VB2005

タイトルバーを使わないでマウスでフォームを移動する

以下の例では、フォームのタイトルバー以外の部分をマウスでドラッグすることでフォームを移動させることができる。タイトルバーのないフォームでよく使われる。

VB.NET2002対応 VB.NET2003対応 VB2005対応

Private Declare Function SendMessage Lib "User32.dll" Alias "SendMessageA" (ByVal hWnd As IntPtr, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As Long

Private Declare Sub ReleaseCapture Lib "User32.dll" ()

Const WM_NCLBUTTONDOWN = &HA1
Const HTCAPTION = 2

Private Sub Form1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseMove

    If e.Button = MouseButtons.Left Then
       
Call ReleaseCapture()
        Call SendMessage(Me.Handle, WM_NCLBUTTONDOWN, HTCAPTION, 0&)
    End
If

End Sub

 


VB6対応 VB6で も同じ手法で実現可能です。