Public Class Resize '移动了吗? Private IsMoving As Boolean = False '控件最后的宽 Private ctrlLastWidth As Integer = 0 '控件最后的高 Private ctrlLastHeight As Integer = 0 '控件原来的宽 Private ctrlWidth As Integer '最后的左侧坐标 Private ctrlLastLeft As Integer '最后的顶部坐标 Private ctrlLastTop As Integer '控件原来的高 Private ctrlHeight As Integer '控件的左侧坐标 Private ctrlLeft As Integer '控件的顶部坐标 Private ctrlTop As Integer '光标的左侧坐标 Private cursorL As Integer '光标的顶部坐标 Private cursorT As Integer ' Private Htap As Integer Private Wtap As Integer Private ctrlIsResizing As Boolean = False '控件的大小矩形 Private ctrlRectangle As System.Drawing.Rectangle = New System.Drawing.Rectangle() Private ctrl As Control '操作的控件 Private frm As Form '控件的父亲窗体 '构造函数 Public Sub New(ByVal c As Control, ByVal frm As Form) ctrl = c Me.frm = frm '标题栏和横向滚动条以及边框的宽 Me.Htap = Me.frm.Height - Me.frm.ClientRectangle.Height '纵向滚动条和边框的宽 Me.Wtap = Me.frm.Width - Me.frm.ClientRectangle.Width AddHandler ctrl.MouseDown, AddressOf MouseDown AddHandler ctrl.MouseMove, AddressOf MouseMove AddHandler ctrl.MouseUp, AddressOf MouseUp End Sub '鼠标按下后的处理 Private Sub MouseDown(ByVal sender As Object, ByVal e As MouseEventArgs) If frm Is Nothing Then Return End If MessageBox.Show(e.Y.ToString) MessageBox.Show((Me.ctrl.Height - 10).ToString) MessageBox.Show(e.X.ToString) MessageBox.Show((Me.ctrl.Width - 10).ToString) '设置第一次有效单击的范围 If e.X < Me.ctrl.Width - 10 OrElse e.Y < Me.ctrl.Height - 10 Then Me.IsMoving = True '指定要绘制的虚线框的坐标(相对屏幕) Me.ctrlLeft = Me.frm.DesktopLocation.X + Me.Wtap + Me.ctrl.Left Me.ctrlTop = Me.frm.DesktopLocation.Y + Me.Htap + Me.ctrl.Top [1] [2] [3] 下一页 |
温馨提示:喜欢本站的话,请收藏一下本站!