关于控件拖动的问题

ruixp 2007-02-26 03:40:14
我在picturebox里面用load添加了好多控件,超过一个页面范围,我用滚动条控制Picturebox显示,这个picturebox和滚动条是放在另外一个picturebox的。
现在我想拖动某个控件和页面其他控件里面的内容进行交换,如何能够在拖动的时候判断我拖动的控件已经离开本页面,并触发滚动条到别的页面呢?
...全文
576 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
ruixp 2007-03-27
  • 打赏
  • 举报
回复
上面方法能触动滚动条,但是感觉手感很差,不知道是否有别的方法
angelwing559 2007-03-16
  • 打赏
  • 举报
回复
再顶一下
kaikai_kk 2007-03-15
  • 打赏
  • 举报
回复
观察当中,学习一下
ruixp 2007-03-15
  • 打赏
  • 举报
回复
看到希望了
楼上说的对
我现在
是 pictureC里面放了一个滚动条和picture1,然后在picture1里面填方控件,往下已经可以了,往上老是滚动条益出
yachong 2007-03-14
  • 打赏
  • 举报
回复
拖动子控件的时候,触发的是作为容器的picturebox的DragOver事件,而不是子控件的DragOver事件。
还有就是DragOver事件的参数X/Y的0点在picturebox的左上角,不是窗体的左上角。
ruixp 2007-03-14
  • 打赏
  • 举报
回复
上面的代码就是触发控件事件吗?我的控件已经把dragmode设为1了,现在拖动没问题,就是拖动到该面下方时还是不能使滚动条往下走下呀
yachong 2007-03-13
  • 打赏
  • 举报
回复
是没有触发DragOver事件吗?
子控件的DragMode设置为1
ruixp 2007-03-13
  • 打赏
  • 举报
回复
是这样写的,没反应,是不是要触发什么呀
Private Sub PatientCard1_DragOver(Index As Integer, Source As Control, x As Single, y As Single, State As Integer)
If y + PatientCard1(Index).Height > PictureC.Top + PictureC.Height Then
VScroll1.Value = VScroll1.Value + 2535 * 1.05
picture1.top=-VScroll1.Value
End If
End Sub
ruixp 2007-03-13
  • 打赏
  • 举报
回复
Private Sub PatientCard1_DragOver(Index As Integer, Source As Control, x As Single, y As Single, State As Integer)
If y + PatientCard1(Index).Height > PictureC.Top + PictureC.Height Then
VScroll1.Value = VScroll1.Value + 2535 * 1.05
End If
End Sub
好像没反应呀
ruixp 2007-03-13
  • 打赏
  • 举报
回复
楼上说的对,我就是这个意思,有没有代码可以参考的
你的方法我先试试
yachong 2007-03-12
  • 打赏
  • 举报
回复
把控件的DragMode设置为1,然后在picturebox的DragOver事件中编写代码。
DragOver事件有参数反映了拖动控件时鼠标的位置,当鼠标靠近picturebox边界时就可以用代码操作滚动条滚动了。
ruixp 2007-03-12
  • 打赏
  • 举报
回复
用滚动条拉动picturebox我已经实现了,现在是想拖动picturebox里面的控件,比如最上的想拖到最下面去,但是由于最上和最下不在一个页面上,所以我是想有什么方法在拖动的时候判断,如果我拖到本页面最下面时就触动页面的翻页功能能够继续往下拖。
呵呵,就是一个拖动的操作,但是不知道说清楚没有,所以请高手继续支招。
luxu365 2007-03-12
  • 打赏
  • 举报
回复
看到你最后一边解释我终于理解了你的意思,你是不是要实现像资源管理器里面的用拖拽文件到窗口边缘的方法让窗口自动滚屏?如果是我给你一个最简单的实现方法,第一picturebox是一个容器,它里面有自己的坐标,和from的坐标不共享,所以你可以这样做,在你拖动控件时实时监测该控件的坐标值并与picturebox的高和宽两个属性值作对比(当然控件的坐标要加上自己本身的宽和高,这个自己理解),当发现控件的坐标值大于picturebox的高或宽(当然还有小于0,就是反方向托)就让VScroll1.Value的值+或-,这样不就OK了么?
wwy1983888 2007-03-10
  • 打赏
  • 举报
回复
社区卫生服务管理软件2007(社区卫生管理,中小医院解决方案,新农村合作医疗,妇幼保健,慢病管理)
联系人王先生 电话0745-2375291
公司网址:http://www.hhtainshi.com
邮箱:5628027@163.com
fishmans 2007-03-09
  • 打赏
  • 举报
回复
现在我想拖动某个控件和页面其他控件里面的内容进行交换,如何能够在拖动的时候判断我拖动的控件已经离开本页面,并触发滚动条到别的页面呢?
==============================
使用控件的dragdrop和dragover事件,當有拖動到一個控件內時會響應dragdrop事件,拖出去則響應dropover

也許我記反了,自己試試
Pecker 2007-03-09
  • 打赏
  • 举报
回复
刚才窗体中代码有一处错误,应该是下面的代码:

Private Sub Form_Load()

VScroll1.Min = 1
VScroll1.Max = 2 '控制滚动数

End Sub

Private Sub VScroll1_Change()

Picture2.Top = -(VScroll1.Value - 1) * ((Picture2.Height - Picture1.Height) / VScroll1.Max)

End Sub
Pecker 2007-03-09
  • 打赏
  • 举报
回复
看看我的理解是不是正确:
你的要求是,一个窗体中有很多窗体,无法一次显示完毕,需要用滚动条来模拟拖动效果显示不可见的那些控件。

可以按下面的方法处理:
在窗体上放一个PictureBox,使用默认名称Picture1,在Picture2中放一个PictureBox,使用默认名称Picture1,再放一个VScrollBar使用默认名称VScroll1。把这些控件调整到合适的位置。然后在Picture2中放入需要的控件。

在窗体中放下面的代码:

Private Sub Form_Load()

VScroll1.Min = 1
VScroll1.Max = 2 '控制滚动数

End Sub

Private Sub VScroll1_Change()

Picture2.Top = -(VScroll1.Value - 1) * ((Y2 - Picture1.Height) / VScroll1.Max)

End Sub
ruixp 2007-03-09
  • 打赏
  • 举报
回复
没有呢,问题先放在这了,高手出招呀
angelwing559 2007-03-07
  • 打赏
  • 举报
回复
http://community.csdn.net/Expert/topic/5379/5379961.xml?temp=.8800165
angelwing559 2007-03-07
  • 打赏
  • 举报
回复
貌似解决了,呵呵。
把分给我吧,嘿嘿
加载更多回复(3)

1,451

社区成员

发帖
与我相关
我的任务
社区描述
VB 控件
社区管理员
  • 控件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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