代码之家  ›  专栏  ›  技术社区  ›  Gaddigesh

列表框更新问题

  •  1
  • Gaddigesh  · 技术社区  · 15 年前

    我有一个4号的列表框

    我可以添加n个ListBoxItem,一旦大小超过4,就启用滚动条,

    问题:当启用滚动时(超过4个项目),每当我删除最后一个项目时,都会有一个白色补丁来代替已删除的项目。

    只有当我触摸滚动条时,补丁才会关闭。

    我试过listbox.invalidate(),但没用

    2 回复  |  直到 15 年前
        1
  •  2
  •   Henk Holterman    15 年前

    附加:仅当删除最后一个元素时才会发生这种情况。

    解决方案:显式设置新的选择,对于最后一个元素,首先滚动列表:

            int selected = listBox1.SelectedIndex;        
            if (selected >= 0)
            {
                listBox1.Items.RemoveAt(selected);
                if (selected == listBox1.Items.Count)
                    listBox1.SelectedIndex = 0;
    
                listBox1.SelectedIndex = selected - 1;
            }
    
        2
  •  0
  •   Neil Barnwell    15 年前

    要从列表框中删除的“删除”代码是什么?如果您正在使用类似的内容:

    listBox.Items[3] = null;
    

    …然后列表框中还有4个项目,只是第4个项目为空。您实际上需要删除项目:

    listBox.Items.Remove(3);