- A+
废话不多说,代码我也不是很懂,也是在学习中,
打开vs软件,新建项目,在项目里面 新建两个窗体,一个是主窗体,一个是任务等待窗体,
在新建一个公共模块,(在里面申明中断的参数)
A、主窗口上绘制一个RichTextBox1控件,TextBox1,Button1
RichTextBox1,显示结果
TextBox1,效果事件次数
Button1,开始执行
主窗口代码:
Public Class Form1
'http://huojibk.com/
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim wait As New Form2
wait._wtVoid = New Form2.WTVoid(AddressOf UI) '不支持带参函数
wait.ShowDialog()
End Sub
Private Sub UI() '转换一下
xh(TextBox1.Text)
End Sub
Private Sub xh(ByVal ce As Integer)
Dim i As Integer
For i = 1 To ce
'Console.WriteLine(i)
RichTextBox1.Text = RichTextBox1.Text & "A伙计百科-" & i & vbCrLf
Me.Text = "A伙计百科-" & i
If ting = True Then
Exit For
End If
Next
End Sub
End Class
/code]
B、准备一个动态图片,最好透明。窗口绘制PictureBox1,LinkLabel1
PictureBox1,加载动态图片
LinkLabel1,停止按钮
窗口具体代码
[code id=2]
Imports System.Threading
Public Class Form2
Public Delegate Sub WTVoid()
Public _wtVoid As WTVoid
Dim th As Threading.Thread
Delegate Sub wt() '定义委托 http://huojibk.com/
Private Sub form_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Control.CheckForIllegalCrossThreadCalls = False
'窗体位置
Me.Left = (Form1.Width - Me.Width) / 2 + Form1.Left
Me.Top = (Form1.Height - Me.Height) / 2 + Form1.Top
th = New Threading.Thread(AddressOf wwtt)
th.Start()
End Sub
'执行委托
Public Sub wwtt()
If Not _wtVoid = Nothing Then
_wtVoid()
End If
Me.DialogResult = Windows.Forms.DialogResult.OK '关闭等待对话框
End Sub
Private Sub LinkLabel1_LinkClicked(ByVal sender As System.Object, ByVal e As System.Windows.Forms.LinkLabelLinkClickedEventArgs) Handles LinkLabel1.LinkClicked
If MsgBox("确定要休息?", MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
ting = True
End If
End Sub
End Class
复制
C、模块代码
Module Module1
Public ting As String = False
End Module
复制
测试结果