Datagridview行到文本框的字符串拆分问题

时间:2014-05-11 20:50:53

标签: vb.net datagridview separator

嗨,我是编程新手,但学得很快,并且我的大部分小应用程序都已经找到了。但是我现在正在努力的部分已经得到了我。 我有一个带有一些文本框的表单,在填写完成后将其作为新行添加到我的datagridview中。 但是一些文本框连接在一起,例如First,Middle和Last名称的框,它们以Last,First Middle的格式添加到一个单元格中,因为将导出的.csv用于Photoshop中的数据集变量并且全名有一个单行文本。 我有一些使用stringsplit的代码,它实际上有效,除非它总是从第一行加载单元格数据,即使我点击另一行并且它添加了不使用stringsplit的数据。 下面是代码的一部分:

Dim i As Integer
Dim line As String = DataGridView1.Item(1, i).Value
Dim separators() As String = {",", " "}
Dim name() As String
i = DataGridView1.CurrentRow.Index
name = line.Split(separators, StringSplitOptions.RemoveEmptyEntries)
txtOrder.Text = DataGridView1.Item(0, i).Value
txtFirst.Text = name(1)
txtMiddle.Text = name(2)
txtLast.Text = name(0)
txtAddress.Text = DataGridView1.Item(2, i).Value

所以说我的datagridview中有两行,每行代表不同的数据顺序。当我单击第二行时,它会为txtOrder.text和txtAddress.text加载正确的值,但它会将FIRST行中的第一个,中间名和最后一个名称加载到三个文本框中(尽管它正确地拆分了字符串和将其正确添加到文本框中。)

我希望我能够解释这个问题,这是我第一篇关于编程的帖子。 希望有人可以帮助我! 谢谢 泰勒

编辑:当然,经过我所做的所有搜索,这是一个简单的解决方案。继续修改代码,将“i = datagridview1.currentrow.index”移到“Dim i as Integer”的右下方。我想是学习过程的一部分!洛尔。

Dim i As Integer
i = DataGridView1.CurrentRow.Index

Dim line As String = DataGridView1.Item(1, i).Value
Dim separators() As String = {",", " "}
Dim name() As String

name = line.Split(separators, StringSplitOptions.RemoveEmptyEntries)

txtOrder.Text = DataGridView1.Item(0, i).Value
txtFirst.Text = name(1)
txtMiddle.Text = name(2)
txtLast.Text = name(0)
txtAddress.Text = DataGridView1.Item(2, i).Value

1 个答案:

答案 0 :(得分:0)

我们没有代码的上下文,例如它是否是点击事件等,而您的问题很难遵循,但这似乎是错误的:

Dim i As Integer
Dim line As String = DataGridView1.Item(1, i).Value

i将始终为零 - 您只是在前一行声明它,因此它总是将line设置为第一行(第(0)行)

i = DataGridView1.CurrentRow.Index

这可能不是你想要的,取决于它是什么,如果它是一个循环等。