Vb.net 删除分隔文本中的空格(使用StringSplitOptions.RemoveEmptyEntries)

Vb.net 删除分隔文本中的空格(使用StringSplitOptions.RemoveEmptyEntries),vb.net,printing,Vb.net,Printing,我尝试使用withStringSplitOptions来删除空格。在打印文本之前,RemoveEmptyEntries,但当我运行代码时,“索引超出了数组的边界”作为错误显示在屏幕上 你能帮我解决那个问题吗 Public Class Form2 Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click OpenFil

我尝试使用withStringSplitOptions来删除空格。在打印文本之前,RemoveEmptyEntries,但当我运行代码时,“索引超出了数组的边界”作为错误显示在屏幕上

你能帮我解决那个问题吗

Public Class Form2
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        OpenFileDialog1.ShowDialog()
        TextBox2.Text = OpenFileDialog1.FileName
    End Sub
    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        Dim myfile As String = TextBox2.Text
        Dim allines As String() = IO.File.ReadAllLines(myfile)
        For Each line As String In allines
            ListBox1.Items.Add(line)
        Next
    End Sub
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim sayı As Integer = TextBox3.Text
    End Sub
    Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged
        If (TextBox3.Text = "") Then
            MessageBox.Show("Please enter number")
            TextBox2.Text = ""
        Else
            If TextBox1.TextLength = TextBox3.Text Then
                Dim fields() As String = ListBox1.Text.Split(";")
                Dim idx As Integer = ListBox1.FindString(TextBox1.Text)
                If idx <> -1 Then
                    ListBox1.SelectedIndex = idx
                    ListBox1.SelectedIndex.ToString(fields(0))
                    ListBox2.Items.Add(ListBox1.Text)
                    TextBox1.Text = ""
                    PrintDocument1.Print()
                End If
            End If
        End If
    End Sub
    Private Sub PrintDocument1_PrintPage(sender As Object, e As Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
        Dim drawfont As New Font("arial", 16)
        Dim drawbrush As New SolidBrush(Color.Black)
        Dim fields() As String = ListBox1.Text.Split(New Char() {","c}, StringSplitOptions.RemoveEmptyEntries)
        e.Graphics.DrawString(ListBox1.SelectedIndex.ToString(fields(0)), drawfont, drawbrush, 100, 50)
        e.Graphics.DrawString(ListBox1.SelectedIndex.ToString(fields(1)), drawfont, drawbrush, 100, 70)
        e.Graphics.DrawString(ListBox1.SelectedIndex.ToString(fields(2)), drawfont, drawbrush, 100, 90)
        e.Graphics.DrawString(ListBox1.SelectedIndex.ToString(fields(3)), drawfont, drawbrush, 100, 110)
        e.Graphics.DrawString(ListBox1.SelectedIndex.ToString(fields(4)), drawfont, drawbrush, 100, 130)
        e.Graphics.DrawString(ListBox1.SelectedIndex.ToString(fields(7)), drawfont, drawbrush, 10, 20)
        e.Graphics.DrawString(ListBox1.SelectedIndex.ToString(fields(10)), drawfont, drawbrush, 270, 20)
        ListBox1.Items.Remove(TextBox1.Text)
    End Sub
End Class
公共类表单2
私有子按钮2\u单击(ByVal sender作为System.Object,ByVal e作为System.EventArgs)处理按钮2。单击
OpenFileDialog1.ShowDialog()
TextBox2.Text=OpenFileDialog1.FileName
端接头
私有子按钮3\u单击(ByVal sender作为System.Object,ByVal e作为System.EventArgs)处理按钮3。单击
将myfile设置为字符串=TextBox2.Text
以字符串()的形式标注Alline=IO.File.ReadAllLines(myfile)
在Alline中,每行作为字符串
ListBox1.Items.Add(行)
下一个
端接头
私有子按钮1\u单击(发送者作为对象,e作为事件参数)处理按钮1。单击
Dim sayıAs Integer=TextBox3.Text
端接头
私有子TextBox1_TextChanged(发送者作为对象,e作为事件args)处理TextBox1.TextChanged
如果(TextBox3.Text=”“),则
MessageBox.Show(“请输入号码”)
TextBox2.Text=“”
其他的
如果TextBox1.TextLength=TextBox3.Text,则
Dim fields()为字符串=ListBox1.Text.Split(;)
Dim idx As Integer=ListBox1.FindString(TextBox1.Text)
如果idx-1那么
ListBox1.SelectedIndex=idx
ListBox1.SelectedIndex.ToString(字段(0))
ListBox2.Items.Add(ListBox1.Text)
TextBox1.Text=“”
PrintDocument1.Print()
如果结束
如果结束
如果结束
端接头
私有子PrintDocument1\u PrintPage(发送者作为对象,e作为Printing.PrintPageEventArgs)处理PrintDocument1.PrintPage
暗淡的drawfont作为新字体(“arial”,16)
与新SolidBrush一样暗淡的drawbrush(颜色:黑色)
Dim fields()为String=ListBox1.Text.Split(新字符(){”,“c},StringSplitOptions.RemoveEmptyEntries)
e、 Graphics.DrawString(ListBox1.SelectedIndex.ToString(字段(0)),drawfont,drawbrush,100,50)
e、 Graphics.DrawString(ListBox1.SelectedIndex.ToString(字段(1)),drawfont,drawbrush,100,70)
e、 Graphics.DrawString(列表框1.SelectedIndex.ToString(字段(2)),drawfont,drawbrush,100,90)
e、 Graphics.DrawString(列表框1.SelectedIndex.ToString(字段(3)),drawfont,drawbrush,100110)
e、 Graphics.DrawString(列表框1.SelectedIndex.ToString(字段(4)),drawfont,drawbrush,100130)
e、 Graphics.DrawString(列表框1.SelectedIndex.ToString(字段(7)),drawfont,drawbrush,10,20)
e、 Graphics.DrawString(列表框1.SelectedIndex.ToString(字段(10)),drawfont,drawbrush,270,20)
ListBox1.Items.Remove(TextBox1.Text)
端接头
末级

安装一个现有的CSV解析库会让您受益匪浅,如果不是毫无痛苦,也会让CSV的工作变得非常有趣。看看您的代码!数组
字段
的长度是可变的,但您的代码假定长度至少为11项(
字段(10)
)。另外,请通读和阅读相关主题。学习这一点比任何论坛都更有帮助。当使用
字体
画笔
画笔
或其他图形对象时,使用
使用/结束使用
块-遵循最佳实践。