将字符串转换为整数

时间:2019-02-18 11:48:43

标签: string vb.net integer converters

我无法在VB.net中将字符串转换为整数

我尝试了以下操作,但效果不佳:

代码:

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)

我为此感到非常疯狂,也许我只是缺少了一些细节,但我无法弄清楚。如果您需要更多详细信息,请帮助我。

2 个答案:

答案 0 :(得分:0)

首先,请确保将项目属性中的ydelay设置设置为“范围用户”,因为“应用程序范围”是只读的。然后再次检查数据类型为Integer。

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

瞧瞧...

        <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

答案 1 :(得分:0)

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

在文本框按键上使用此代码

  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)