列表框更新问题

时间:2010-04-19 14:02:32

标签: c# winforms listbox

我有一个常量大小为4的ListBox

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

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

仅当我触摸滚动条时,Patch才会关闭。

我尝试了ListBox.Invalidate(),但没有用

2 个答案:

答案 0 :(得分:2)

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

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

        int selected = listBox1.SelectedIndex;        
        if (selected >= 0)
        {
            listBox1.Items.RemoveAt(selected);
            if (selected == listBox1.Items.Count)
                listBox1.SelectedIndex = 0;

            listBox1.SelectedIndex = selected - 1;
        }

答案 1 :(得分:0)

要从列表框中删除的“删除”代码是什么?如果你使用这样的东西:

listBox.Items[3] = null;

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

listBox.Items.Remove(3);