【问题标题】:Listbox items delete列表框项目删除
【发布时间】:2014-11-30 13:33:40
【问题描述】:

如何删除包含“?”之后的列表框项目文本?

示例列表框项目文本:

I want it ? please, remove it.

我的代码:

        For i = 0 To ListBox1.Items.Count - 1

        If ListBox1.Items(i).ToString.StartsWith("?") Then
        'something useful for me.
        End If
        Next

如果我想删除特定文本,我会使用它。

For i = 0 To CheckedListBox1.Items.Count - 1
            If CheckedListBox1.Items(i).ToString.Contains("something") Then
                CheckedListBox1.Items(i) = CheckedListBox1.Items(i).ToString.Replace("something", "")
            End If

但它是动态生成的列表框项。 示例:

I want it ? please, remove it.1234
I want it ? please, remove it.2345
I want it ? please, remove it.64653
I want it ? remove461
etc...

【问题讨论】:

  • ListBox1.Items.Remove 或 RemoveAt(我不确定)
  • 您的问题不清楚:您希望 1) 删除列表框中的项目吗? 2) 用另一个替换列表框中的项目?或 3) 替换/格式化/更改/更改该列表框中项目的显示TEXT
  • 3.我想在“?”之后替换(或删除)我的列表框项目文本

标签: vb.net visual-studio-2010 listbox


【解决方案1】:

开始向后循环,然后使用RemoveAt

For i = ListBox1.Items.Count - 1 To 0 Step -1
    If ListBox1.Items(i).ToString.StartsWith("?") Then
       ListBox1.Items.RemoveAt(i)
    End If
Next

当您想从集合中删除一个或多个项目时,从集合的末尾循环到其第一个元素很重要。如果您在正常转发模式下循环,则在删除项目时可能会遇到问题。例如,如果您删除位置 5 处的项目,则位置 6 处的项目会移动到位置 5,但随后您将循环索引器增加到 6,从而有效地跳转了先前位于位置 6 处的项目的逻辑

更新:如果您想删除包含问号的项目,请使用不同的方法检查检查项目中是否存在问号

For i = ListBox1.Items.Count - 1 To 0 Step -1
    If ListBox1.Items(i).ToString.Contains("?") Then
       ListBox1.Items.RemoveAt(i)
    End If
Next

或者,如果你想替换包含问号的当前项目,在问号之后剪掉文本,写这样的内容

For i = ListBox1.Items.Count - 1 To 0 Step -1
    If ListBox1.Items(i).ToString.Contains("?") Then
       Dim item = ListBox1.Items(i).ToString()
       Dim pos = item.IndexOf("?"c)
       item = item.Substring(0, pos)
       ListBox1.Items(i) = item
    End If
Next

最后,如果问号被空格包围,你可以添加一个 TrimEnd

 item = item.Substring(0, pos).TrimEnd()

【讨论】:

  • 我更新了我的问题,请再次阅读。 "ListBox1.Items.RemoveAt(i)" 什么都不做。
  • RemoveAt 完全删除一个项目。您的条件 (StartsWith) 查找以问号开头的项目。如果要删除包含问号的项目,则需要使用 Contains
  • 您的代码删除了所有包含“?”的项目,我想在“?”之后替换(或删除)我的列表框项目文本示例:我保留它?我删除它
猜你喜欢
  • 1970-01-01
  • 2020-12-07
  • 2010-11-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-20
相关资源
最近更新 更多