我无法在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)
我为此感到非常疯狂,也许我只是缺少了一些细节,但我无法弄清楚。如果您需要更多详细信息,请帮助我。
答案 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)