将字符串转换为整数

问题描述 投票:-2回答:2

我在VB.net中将String转换为Integer时遇到问题

我尝试了以下,但它不会工作:

码:

1:

Private Sub TextBox3_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox3.TextChanged
    My.Settings.ydelay = Convert.ToInt32(TextBox3.Text)
End Sub

2:

My.Settings.ydelay = Textbox3.Text
My.Settings.ydelay = Convert.ToInt32(Textbox3.Text)

3:

My.Settings.ydelay = Convert.ToInt32(Textbox.3Text)
My.Settings.ydelay = Textbox3.Text

4:

My.Settings.ydelay = Textbox3.Text
Convert.ToInt32(Textbox3.Text, My.Settings.ydelay)

我对此很疯狂,也许我只是错过了一些细节,但我无法弄明白。如果您需要更多详细信息,请联系我们,我们将非常感谢帮助。

string vb.net integer converters
2个回答
0
投票

首先,确保项目属性中的ydelay设置设置为Scope User,因为Application范围是Read Only。然后仔细检查数据类型是否为Integer。

您将看不到项目属性中的更改。它们存储在User.config中。位置:C:\ Users \ [用户名] \ AppData \ Local \ TestCode2 \ TestCode2.exe_Url_aq2yohztn2r23tmvf0pbczm25mx0yx11 \ 1.0.0.0我的项目名为TestCode2。

罗,看哪......

        <setting name="ydelay" serializeAs="String">
            <value>1</value>
        </setting>

如果您要转到另一台计算机,ydelay的设置将是项目属性中显示的初始值。这是有道理的,因为它是一个“用户”设置,每个用户都有自己的设置。

至于代码。我不喜欢TextChanged事件。每按一次键就会触发;包括退格。也许离开会对你有用。

.TryParse是检查输入的好方法。它通过设置变量并返回一个布尔值来实现双重任务,因此它适合于If语句。

Private Sub TextBox16_Leave(sender As Object, e As EventArgs) Handles TextBox16.Leave
    Dim i As Integer
    If Integer.TryParse(TextBox16.Text, i) Then
        My.Settings.ydelay = i
    Else
        MessageBox.Show("Please enter a number in TextBox 16")
        TextBox16.Select() 'If you want to insist
    End If
End Sub

0
投票

您想将字符串转换为整数。检查您输入的是否只是一个数字。

是在textbox keypress上使用此代码

  If (e.KeyChar <= ChrW(47)) Or (e.KeyChar >= ChrW(58)) Then
            If e.KeyChar = vbBack Then
            Else
                e.KeyChar = ChrW(0)
            End If
        Else
        End If
        If sender.text = "" Then
            sender.text = 0
        End If

之后,我只使用Cint(textboxt.text)

© www.soinside.com 2019 - 2024. All rights reserved.