我已对此进行了研究,无法在任何地方找到解决问题的参考。我创建了一些代码来从文本文档中随机化大约20个项目,并将它们放入我的表单上的列表框中。这是一份法律文件,因此,一旦随机化,它将以不同的顺序被读回到文本文档中。每个项目都有一个标题:请求入场。 #(#是问题符合的任何数字)。我需要那些#的数字顺序(1-20),尽管问题的顺序是乱码的。我一直在努力,直到我得到它插入该行,增加数字。但它正在向后递增它们(参见编辑示例)。 Program output罪魁祸首语言如下。我认为它就在某个地方:
ListBox1.BeginUpdate()
Try
'do with listBox1.Items[i]
For i As Integer = ListBox1.Items.Count - 1 To 0 Step -1
ListBox1.Items.Insert(i, "REQUEST FOR ADMISSION NO. " & nxtNum & vbCrLf)
nxtNum += 1
Next
Finally
ListBox1.EndUpdate()
End Try
注意:我可以通过翻阅列表来使其工作。不优雅,但它有效。
ListBox1.BeginUpdate()
Try
'do with listBox1.Items[i]
For i As Integer = ListBox1.Items.Count - 1 To 0 Step -1
ListBox1.Items.Insert(i + 1, "REQUEST FOR ADMISSION NO. " & nxtNum & vbCrLf)
nxtNum += 1
Next
Finally
ListBox1.EndUpdate()
End Try
nxtNum = 1
Dim items() As Object = ListBox1.Items.Cast(Of Object).Reverse.ToArray
ListBox1.Items.Clear()
ListBox1.Items.AddRange(items)
答案 0 :(得分:0)
如果不是针对一个问题,则您在评论中提供的示例应该有效:Step -1
For
- 循环在执行新迭代时的工作方式如下:
New Value = Current Value + Step
意思,当你这样做时:
For i As Integer = 0 To ListBox1.Items.Count - 1 Step -1
你一直在做Current Index + (-1)
,这就是为什么他们最终排在最前面;你继续前进一步。
解决此问题的简单方法是将其更改为Step 1
或完全删除Step
部分(默认步骤为1
,如果省略)。
For i As Integer = 0 To ListBox1.Items.Count - 1
...your code...
Next
修改强>
我想我看到了你的实际问题,我错过了...当你添加这些标题时,描述已经存在。
在这种情况下,您应该能够:
For i As Integer = 0 To ListBox1.Items.Count - 1 Step 2
...your code...
Next