网站建设资讯

NEWS

网站建设资讯

vb.net计算毫秒 vba获取毫秒级的时间戳

怎样用vb.net做毫秒计时器(有没有什么类似于ccrptmr之类的控件)

不需要控件就可以,用多线程的方式实现,在窗体上放一个Label和一个button按钮,代码如下:

创新互联公司主要从事网站制作、成都网站建设、网页设计、企业做网站、公司建网站等业务。立足成都服务沈河,10余年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:13518219792

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毫秒计时器代码问题

elapsed.Milliseconds 获取毫秒。

每100毫秒,do中的代码执行一次,执行时间将大于100毫秒,这是产生误差的地方之一。invoke执行一个方法txt,必须等txt里面的代码运行完毕,方法才能返回,期间占用的时间全是“误差”。

无限循环,且没有退出机制,停不下来。

用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"

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.Count  0 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 += TemInt1 + TemInt2 * 60

Debug.Print(SeconSun.ToString)

Next

TextBox1.Text = (SeconSun / ListBox1.Items.Count).ToString + "秒"

End If

Label1.Focus()

End Sub

End Class


网页标题:vb.net计算毫秒 vba获取毫秒级的时间戳
转载来源:http://cdweb.net/article/doidcoe.html