我有一个TextBox,两个ListBox和两个Buttons。第一个Button分隔TextBox中的每个String,并将它们逐个添加到ListBox1。第二个Button将每个String转换为Integer。但是我得到了调试器抛出的异常:
输入字符串格式不正确。
System.FormatException was unhandled
HResult=-2146233033
Message=Cadeia de caracteres de entrada com formato incorrecto.
Source=mscorlib
StackTrace:
em System.Number.StringToNumber(String str, NumberStyles options,
NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)
em System.Number.ParseDecimal(String value, NumberStyles options,
NumberFormatInfo numfmt)
em System.Convert.ToDecimal(String value)
em g_.Form2.Button2_Click(Object sender, EventArgs e) em
C:\Users\Utilizador\Documents\Visual Studio
2012\Projects\g+\g+\Form2.vb:line 17
我已插入代码来清理空白区域,但它继续抛出相同的错误。 在反思问题之后,我决定改变做法的方式
这是我的代码:
Public Class Form2
Dim frequency
Dim interval
Dim textconverted
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim myArray() As Char
myArray = Me.TextBox1.Text.ToCharArray
For Each chr As Char In Me.TextBox1.Text
ListBox1.Items.Add(chr)
Next
For i As Integer = ListBox1.Items.Count - 1 To 0 Step -1
If ListBox1.GetItemText(ListBox1.Items(i)) = String.Empty Then
ListBox1.Items.RemoveAt(i)
End If
Next i
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
For i As Integer = 0 To ListBox1.Items.Count - 1
If (ListBox1.Items(i).ToString.Contains("a")) Then
ListBox2.Items.Add("1") 'Indexing is zero-based
Exit For
End If
Next
End Sub
End Class
答案 0 :(得分:0)
我找到了一种不同的方式来做它并做它我需要的。
这是可行的解决方案 公共类Form2 昏暗的频率 昏暗的间隔 昏暗的文字转换
{{1}}
但是现在我还有其他问题,它只检查一个字符串 如何在那里验证多个字符串?
答案 1 :(得分:0)
我将.ToString添加到你的按钮2代码,它运行正常。打开Option Strict;你会避免一些运行时错误。我发布了代码,它将处理a-z而不是一堆if语句。将.ToLower添加到TextBox1.Text.ToLower myArray永远不会被使用myVariable。
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
For x As Integer = 0 To ListBox3.Items.Count - 1
Dim s As String = (Asc(ListBox3.Items(x).ToString) - 96).ToString
ListBox2.Items.Add(s)
Next
End Sub