关于边界处理的问题?

mzwww 2006-03-22 09:32:29
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim pCtrl As New Button
Me.Panel1.Controls.Add(pCtrl)
AddHandler pCtrl.MouseDown, AddressOf MyMouseDown
AddHandler pCtrl.MouseMove, AddressOf MyMouseMove
End Sub
Private Ox As Integer
Private Oy As Integer
Dim p As New Point
Private Sub MyMouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)
If e.Button = MouseButtons.Left Then
Ox = Control.MousePosition.X
Oy = Control.MousePosition.Y
End If
End Sub
Private Sub MyMouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)
If e.Button = MouseButtons.Left Then
CType(sender, Button).Left = CType(sender, Button).Left + Control.MousePosition.X - Ox
CType(sender, Button).Top = CType(sender, Button).Top + Control.MousePosition.Y - Oy
Ox = Control.MousePosition.X
Oy = Control.MousePosition.Y
End If
End Sub


上面是本人做的关于button在窗体上拖动的代码,怎么处理边界的问题,就是不让控件拖出窗体以外(拖出窗体空间不见了)。谢谢
...全文
137 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhengoodman 2006-03-23
  • 打赏
  • 举报
回复
取四个边界
Me.Panel1.Left
Me.Panel1.Left+Me.Panel1.width
Me.Panel1.Top
Me.Panel1.Top+Me.Panel1.Height
mzwww 2006-03-23
  • 打赏
  • 举报
回复
to zhengoodman(伤心小箭--甩一个人需要理由吗?)
先谢谢了
试试
mzwww 2006-03-22
  • 打赏
  • 举报
回复
上面是本人做的关于button在窗体上拖动的代码,怎么处理边界的问题,就是不能拖出窗体,要是不明白的话拷贝代码运行一下,谢谢!
syc958 2006-03-22
  • 打赏
  • 举报
回复
顶!不太明白你说的什么意思!
mzwww 2006-03-22
  • 打赏
  • 举报
回复
没人理???
mzwww 2006-03-22
  • 打赏
  • 举报
回复
mzwww 2006-03-22
  • 打赏
  • 举报
回复
问题没有解决,贴不能沉啊!
mzwww 2006-03-22
  • 打赏
  • 举报
回复
to lqshadan(强)
我现在就是不知道如何取的边界的x,y坐标。检查的函数我写好了。
还有就是我是用Panel来放button的。四边的边界如何取?
lqshadan 2006-03-22
  • 打赏
  • 举报
回复
取一下 Form 的四个边界的 x,y 坐标, 然后鼠标移动以后的x,y和这四个坐标进行Check()做一个函数,如果超过临界值返回窗体的边界值的位置,并把控件固定在那里 回答完毕
mzwww 2006-03-22
  • 打赏
  • 举报
回复

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧