转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 软件开发 >> VB.NET程序 >> 正文
VB.net基础:简单的自定义控件MyPictureBox         ★★★★

VB.net基础:简单的自定义控件MyPictureBox

作者:闵涛 文章来源:闵涛的学习笔记 点击数:2152 更新时间:2009/4/23 19:00:53
End Sub

这样的组合就能达到目标了。

然后我们再写“拖动”图片的功能。显然,这个功能只有当ViewMode=TrueSize的时候才有用。这个功能分三部分,首先是MouseDown事件:
    Private Sub PictureBox1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseDown
        If e.Button <> MouseButtons.Left Or ViewMode <> VMode.TrueSize Then Exit Sub
        Moving = True
        Me.Cursor = System.Windows.Forms.Cursors.Hand
        MousePos = Me.MousePosition
        OldScroll = Me.AutoScrollPosition
    End Sub

这里Moving变量用来表示用户是否正在拖动图片,类型是Boolean。没定义?到前面去定义一下不就行了。还有什么MousePos,OldScroll,它们俩的类型是Point。快去定义一下。当用用户按下鼠标左键的时候,记录下鼠标位置和图片当的前滚动位置。

然后是MouseMove事件:

等等。在用户移动鼠标的时候,又要不停的计算图片框的滚动位置。为了避免再次“霸道”起来,我们又要拖进来一个Timer。设置Interval值为1。这个Timer是这样的:
    Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick
        MousePosNow = Me.MousePosition
        Dim DeltaPos As Point = New Point((MousePos.X - MousePosNow.X), (MousePos.Y - MousePosNow.Y))
        Me.AutoScrollPosition = New Point(-OldScroll.X + DeltaPos.X, -OldScroll.Y + DeltaPos.Y)
        Timer2.Stop()
    End Sub

就四句话,应该不太难看懂吧。
所以MouseMove就这样:
    Private Sub PictureBox1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseMove
        If Moving Then
            Timer2.Start()
        End If
    End Sub

第三部分就是MouseUp事件了,就两句话:
    Private Sub PictureBox1_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseUp
        Moving = False
        Me.Cursor = System.Windows.Forms.Cursors.Default
    End Sub

这样,MyPictureBox就写好了。





……没错,是写好了。运行一下看看。





不能运行?废话。我叫你再建一个WinForm程序,把MyPictureBox拖进去看看!

上一页  [1] [2] 


没有相关教程
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · C语言系列  · VB.NET程序
    · JAVA开发  · Delphi程序
    · 脚本语言
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台