废话不多说,上代码,一目了然!
'*************************************************************************** '作者:章鱼哥,QQ:3107073263 群:309816713 '如有疑问或好的建议请联系我,大家一起进步 '主要内容: ' 使用线程和委托 '主要功能: ' 每2秒改变窗体按钮的位置,达到随机跳动的目的 ' 实例需要控件: ' 窗体:Form1 按钮:Button1 '*********************************************************************** Imports System.Threading Public Class Form1 Private My_Thread As Thread Dim r As New Random Delegate Sub My_Delegate(ByVal x As Integer,ByVal Y As Integer) '第一步,开启线程 Private Sub Form1_Load(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles MyBase.Load My_Thread = New Thread(AddressOf Deal_Thread) My_Thread.Start() End Sub '第二步,进入线程处理程序 Private Sub Deal_Thread() While (True) Dim x As Integer = r.Next(Me.Width - Button1.Width) Dim y As Integer = r.Next(Me.Height - Button1.Height) Invoke_Thread(x,y) '使用委托 Thread.Sleep(2000) End While End Sub ' 第三步,给委托传递参数,引发委托 Private Sub Invoke_Thread(ByVal x As Integer,ByVal Y As Integer) Dim hander As New My_Delegate(AddressOf Deal_Delegate) Me.Invoke(hander,x,Y) End Sub '第四部,更新窗体中控件 Private Sub Deal_Delegate(ByVal x As Integer,ByVal Y As Integer) Button1.Location = New Point(x,Y) End Sub '最后别忘记关掉线程 Private Sub Form1_FormClosing(ByVal sender As Object,ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing My_Thread.Abort() End Sub End Class
运行效果:
原文地址:https://www.jb51.cc/vb/257772.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。