Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Loops 如何在VB express 2010中循环浏览列表框并编辑每个行项目_Loops_Listbox - Fatal编程技术网

Loops 如何在VB express 2010中循环浏览列表框并编辑每个行项目

Loops 如何在VB express 2010中循环浏览列表框并编辑每个行项目,loops,listbox,Loops,Listbox,我已经学习VB四个星期了,我已经达到了我知识的极限。我当然需要更有经验的程序员的帮助 我试图循环通过我的列表框,删除每行项目的前4个字符 具体来说,我希望它的行为如下: 选择列表框的第一行并发送到字符串(减去前4个字符) 列表框的第一行将从列表框中删除 列表框第一行的修改版本将添加到列表框中,位置与原始位置相同 选择列表框的下一行…等等。。。。 重复此操作,直到修改了整个列表框 下面是我如何尝试做到这一点的一个示例……它几乎可以起作用:) 作为字符串的Dim测试 test=ListBox1.Se

我已经学习VB四个星期了,我已经达到了我知识的极限。我当然需要更有经验的程序员的帮助

我试图循环通过我的列表框,删除每行项目的前4个字符

具体来说,我希望它的行为如下:

选择列表框的第一行并发送到字符串(减去前4个字符) 列表框的第一行将从列表框中删除 列表框第一行的修改版本将添加到列表框中,位置与原始位置相同

选择列表框的下一行…等等。。。。 重复此操作,直到修改了整个列表框

下面是我如何尝试做到这一点的一个示例……它几乎可以起作用:)

作为字符串的Dim测试 test=ListBox1.SelectedItem.ToString.Substring(4) ListBox1.Items.RemoveAt(ListBox1.SelectedIndex) ListBox1.Items.Add(测试)

有人能帮我填空吗?
提前感谢您的帮助

首先,请再次检查,您正在循环,对吗

接下来,我们可以看看这一行:

ListBox1.Items.RemoveAt(ListBox1.SelectedIndex) ListBox1.Items.Add(test)
如果我理解正确,您将删除特定索引处的项,然后将新字符串test添加回列表中。从这个角度看,add似乎会将此项粘贴在列表框的末尾,但您正在删除指定索引中的某些内容

因此,你实际上并没有替换你可能认为你正在替换的东西。这是我最好的猜测。例如,如果您删除了列表中的第二个元素,但当您将test放回列表中时,它将被添加到末尾。所以像[a,b,c,d]这样的东西变成了[a,c,d,b]

或许将其改为:

ListBox1.Items.RemoveAt(ListBox1.SelectedIndex) ListBox1.Items.Insert(ListBox1.SelectedIndex, test)

可以通过这种方式访问和编辑列表框项目

   listBox1.BeginUpdate();
try {
  for(int i = listBox1.Items.Count - 1; i >= 0 ; i--) {
    // do with listBox1.Items[i]

  }
} finally {
  listBox1.EndUpdate();
}