我在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)
我对此很疯狂,也许我只是错过了一些细节,但我无法弄明白。如果您需要更多详细信息,请联系我们,我们将非常感谢帮助。
首先,确保项目属性中的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
您想将字符串转换为整数。检查您输入的是否只是一个数字。
是在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)