在VB.Net中使用文本框存储数字计数器

在VB.Net中使用文本框存储数字计数器,vb.net,Vb.net,我想用一个文本框数数。 这是我的密码: Public Class Form1 Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick OrainsProgressBar1.Increment(1) If OrainsProgressBar1.Value = 100 Then Tim

我想用一个文本框数数。 这是我的密码:

Public Class Form1

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        OrainsProgressBar1.Increment(1)
        If OrainsProgressBar1.Value = 100 Then
            Timer3.Start()
            Timer1.Stop()
        End If
    End Sub

    Private Sub OrainsTheme1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OrainsTheme1.Click
    End Sub

    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Timer1.Start()
        Timer2.Start()
    End Sub

    Private Sub Timer3_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer3.Tick
        OrainsProgressBar1.Increment(-1)
        If OrainsProgressBar1.Value = 0 Then
            Timer1.Start()
            Timer3.Stop()
        End If
    End Sub

    Private Sub OrainsButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OrainsButton1.Click
        OrainsTextBox1.Text += 100
    End Sub

    Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick
        OrainsTextBox1.Text += 1
    End Sub
End Class
但是我的
或instextbox1.Text+=1
有一个错误。VB说:

从字符串“”转换为类型“Double”无效


有什么问题吗?

而不是像这样操作OrainstTextBox1.Text+=1

执行以下操作:OrainsTextBox1.Text=Val(OrainsTextBox1.Text)+1


因为.Text是字符串。在.Net世界中,事物的数据类型非常重要。字符串(如
.Text
属性)不是数字。你需要转换。即使有人只在文本框中输入数字0-9,这仍然是一个数字字符串,而不是一个数字。如果有人在文本框中输入随机文本,而该文本框根本不会转换为数字类型,该怎么办

对于此代码,我建议创建一个属性,如下所示:

Private _orainsValue As Double
Public Property OrainsValue As Double
    Get
       Return _orainsValues
    End Get
    Set
         _orainsValue = Value
         OrainsTextBox1.Text = _orainsValue.ToString()
    End Set
End Property
这将允许您编写如下代码,并向用户显示预期结果:

Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick
    OrainsVale += 1
End Sub

请注意,这确实意味着您希望将文本框标记为禁用,因为这不包括用户数据输入。

请澄清您的问题。。。。。。!!!将语句
选项Strict作为代码的第一行。If将标记可能导致这些错误的代码(在本例中,将字符串视为数字)。更正标记的代码,您不应该再次遇到这些问题。