2016-11-15 62 views
-1

我试图让单个文本框(txtRecord)拆分为6个其他文本框。 (txtField1,txtField2,txtField3,txtField4,txtField5,txtField6)。我想在每个逗号分开。示例输入:555一些St.,City,State,ZipCode。 我希望每一个分解(555一些圣)将进入txtField1。 (城市)将进入txtField2。 (状态)将进入txtField3。 (ZipCode)将进入txtField4。我再次需要逗号作为转折点。当输入被拆分时,我需要删除逗号。我已经让他们分裂,但如果我没有每个文本框的信息,它踢了一个错误,它也把逗号放入txtFields。附注我有Option Srtict ON。我也知道标签会更好用,但该项目需要文本框。将文本从输入拆分为多个文本框

Private Sub btnBreakApart_Click(sender As Object, e As EventArgs) Handles btnBreakApart.Click 


    Dim strRecord As String = txtRecord.Text 
    Dim ArryList() As String = strRecord.Split(CType(",", Char())) 
    Dim ctrlText As TextBox() = New TextBox() {txtField1, txtField2, txtField3, txtField4, txtField5, txtField6} 

    'Return txtRecord input box back to white 
    txtRecord.BackColor = Color.White 

    'Split data into different text boxes 
    If txtRecord.Text = "" Then 
     MessageBox.Show("Null Value Not Allowed") 
     txtRecord.Focus() 
     txtRecord.BackColor = Color.Yellow 
    Else 
     For x As Integer = 0 To strRecord.Length - 1 
      ctrlText(x).Text = strRecord(x) 
     Next 
    End If 
+0

有工具,采空区解析CSV记录。 – Plutonix

+0

Split之后的ArryList是什么,可以像strRecord.Split(“,”)'AFAIK一样完成?什么是错误和哪一行? – topshot

+1

您正在通过strRecord循环 - “For x As Integer = 0 to strRecord.Length - 1”。你不应该通过ArryList循环吗? – Mark

回答

0

我会改变分割使用单个字符的可读性

Dim ArryList() As String = strRecord.Split(","c) 

和访问生成的拆分项目

For x = 0 To ArryList.Count - 1 
    ctrlText(x).Text = ArryList(x).Trim() 
Next 
+1

使用'Trim'去除'ArrayList'元素中的前导空白也是一个好主意。 – Blackwood