vb.net毫秒计时器代码问题elapsed.Milliseconds 获取毫秒 。
每100毫秒,do中的代码执行一次,执行时间将大于100毫秒,这是产生误差的地方之一 。invoke执行一个方法txt,必须等txt里面的代码运行完毕,方法才能返回,期间占用的时间全是“误差” 。
无限循环,且没有退出机制 , 停不下来 。
用VB.NET设计一个以秒为基本单位的表,并且显示在窗体上的步骤,并且给出关键代码是我以前自己设计的用来测试自己点钞速度用的vb.net毫秒级,希望是vb.net毫秒级你需要的
以下是窗体的全部代码
Public Class Form1
Dim StartFlag As Boolean = False
Dim secon As Integer
Dim minut As Integer
'空格
Private Sub Form1_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyUp
If e.KeyCode = Keys.Space Then
If StartFlag Then
StartFlag = False
Timer1.Enabled = False
If Val(Strings.Right(Label1.Text, 2))10 And Val(Strings.Right(Label1.Text, 2)) = 0 Then secon = 0 : minut = 0 : Label1.Text = "00:00" : Exit Sub
ListBox1.Items.Add(Label1.Text.ToString)
ListBox1.SelectedItem = ListBox1.Items.Count - 1
Label1.Focus()
Button1.Enabled = True
Label1.Text = "00:00"
【vb.net毫秒级 vba 毫秒】secon = 0
minut = 0
Else
StartFlag = True
Timer1.Enabled = True
End If
End If
End Sub
'加载
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
ListBox1.Items.Clear()
Label1.Text = "00:00"
Button1.Enabled = False
secon = 0
minut = 0
Label1.Focus()
End Sub
'清空
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Button1.Enabled = False
ListBox1.Items.Clear()
Label1.Focus()
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
secon= 1
If secon = 60 Then
secon = 0
minut= 1
End If
Dim seconStr As String = secon
If seconStr.Length = 1 Then seconStr = "0"seconStr
Dim minutStr As String = minut
If minutStr.Length = 1 Then minutStr = "0"minutStr
Label1.Text = minutStr":"seconStr
Label1.Focus()
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim SeconSun As Integer
If ListBox1.Items.Count0 Then
For i = 0 To ListBox1.Items.Count - 1
Dim TemStr As String = ListBox1.Items.Item(i).ToString
Dim TemInt1 As Integer = Val(Strings.Right(TemStr, 2))
Dim TemInt2 As Integer = Val(Strings.Left(TemStr, 2))
Debug.Print(TemInt1.ToString)
Debug.Print(TemInt2.ToString)
SeconSun= TemInt1TemInt2 * 60
Debug.Print(SeconSun.ToString)
Next
TextBox1.Text = (SeconSun / ListBox1.Items.Count).ToString"秒"
End If
Label1.Focus()
End Sub
End Class
怎样用vb.net做毫秒计时器(有没有什么类似于ccrptmr之类的控件)不需要控件就可以,用多线程的方式实现 , 在窗体上放一个Label和一个button按钮 , 代码如下:
Imports System.Threading
Public Class Form1
Dim Start As Double
Dim td As Thread
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Label1.Text = "00:00:00 000"
Button1.Text = "开始"
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If Button1.Text = "开始" Then
Button1.Text = "结束"
Start = DateAndTime.Timer
td = New Thread(AddressOf fun1)
td.Start()
Else
Button1.Text = "开始"
td.Abort()
End If
End Sub
'定义一个线程
Private Sub fun1()
Dim elapsed As TimeSpan
Dim Dg_txt As New Dg(AddressOf txt)
Do
elapsed = TimeSpan.FromMilliseconds((DateAndTime.Timer - Start) * 1000)
Me.Invoke(Dg_txt, elapsed.ToString, Label1)
Thread.Sleep(100)
Loop
End Sub
'定义一个委托
Delegate Sub Dg(ByVal s As String, ByVal obj As Label)
Sub txt(ByVal s As String, ByVal obj As Label)
obj.Text = s
End Sub
End Class
vb.net毫秒级的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于vba 毫秒、vb.net毫秒级的信息别忘了在本站进行查找喔 。
推荐阅读
- 电脑怎么自动剪切桌面壁纸,电脑自由选择剪切
- 小程序提交审核一般多久,小程序审核过了多久能上线
- 魔法跟随动作的游戏,可以施展魔法的游戏
- 摄影师拍摄前需要关闭什么,摄影前需要准备什么
- linux导出执行命令 linux导入导出命令
- 如何推广水培豌豆苗,如何推广水培豌豆苗呢
- 视频号认证粉丝量,视频号认证1000粉丝
- 微信公众号注册名称时间,微信公众号注册名称时间怎么改
- go语言正则表达式 go语言 正则表达式