C#如何在MultiSimple选择模式下阻止ListBox自动选择第一个项目,当你取消选中框中最后一个选中的项目时 - 只有当我自己的类对象表示列表框时才会发生,并且当它表示时一切正常字符串对象。日Thnx!
答案 0 :(得分:1)
似乎跟踪列表的顺序是最重要的部分。我建议也许做一个结构数组。您可以使此结构包含您想要的任何内容,例如:
struct itemList
{
public string itemName;
public int itemIndex;
//include whatever other variables that you need included in here.
}
另外,请确保将结构放在命名空间之前。然后,使结构的数组看起来像这样:
itemList[] items1 = new itemList[listBoxName.SelectedItems.Count];
然后,您需要做的就是在重新排序listBox
之前将项添加到数组中for (int i = 0; i < listBoxName.SelectedItems.Count; i++)
{
items1[i].itemName = listBoxName.SelectedItems[i].ToString();
items1[i].itemIndex = listBoxName.SelectedIndices[i];
}
答案 1 :(得分:0)
非常感谢,但我已经使用过这样的东西了。我不明白为什么每次将预加载的列表指定为DataSource时,为什么会选择listBox的第一项。我解决了这个问题,通过创建另一个我的对象类的临时List,从二进制文件中获取哪些项,然后通过listOfObjects.Add(object)方法将它们逐个推送到foreach循环中的原始List。我知道每次在代码ListOfTags.DataSource = null;
ListOfTags.DataSource = tags;
ListOfTags.DisplayMember = "Name";
之后,如果我的标签(它是一个列表)甚至在代码中被预加载(例如,如果我编写代码List<Tag> tags = new List<Tag> {new Tag("1"),new Tag("2"), new Tag("3")};
,这会在选择列表框的第一项时采取这种情况,并且在我尝试取消选择listBox中最后选择的项目时,每次开始选择。