打印本文 打印本文  关闭窗口 关闭窗口  
VB.NET拖动无边框窗体编程实例
作者:佚名  文章来源:不详  点击数  更新时间:2008/4/18 14:45:00  文章录入:杜斌  责任编辑:杜斌

  Imports System.Drawing  
  Imports System.Windows.Forms  
  ’******************************************  
  Private oOriginalRegion As Region = Nothing  
  ’ 用于窗体移动  
  Private bFormDragging As Boolean = False  
  Private oPointClicked As Point  

  ’******************************************  

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

  Me.bFormDragging = True  
  Me.oPointClicked = New Point(e.X, e.Y)  

  End Sub  
  ’******************************************  

  Private Sub Form1_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseUp  
  Me.bFormDragging = False  

  End Sub  
  ’******************************************  

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

     Dim oMoveToPoint As Point  

  ’ 以当前鼠标位置为基础,找出目标位置  

  oMoveToPoint = Me.PointToScreen(New Point(e.X, e.Y))  

  ’ 根据开始位置作出调整  

  oMoveToPoint.Offset(Me.oPointClicked.X * -1, _  

  (Me.oPointClicked.Y + _  

  SystemInformation.CaptionHeight + _  

  SystemInformation.BorderSize.Height) * -1)  

  ’ 移动窗体  

  Me.Location = oMoveToPoint  

  End If  

  End Sub 
打印本文 打印本文  关闭窗口 关闭窗口