我真的很想尝试如何在FastObjectListView(C#,Windows窗体)中选择行。我在网格中有对象和该对象的索引,但是我无法将其选中!我所做的一切-将滚动条移动到这一行,但不要选择它。方法:idx = index of row with my objectobj = my objectgvRaces.Items[idx].Selected = true;gvRaces.SelectObject(obj , true);gvRaces.SelectedItem = (OLVListItem)gvRaces.Items.Find(obj.Id.ToString(), true).FirstOrDefault(); - 对于最后一种方法,我有一个问题。方法... Items.Find(key,searchAllSubitems)中的键是什么?所有这些方法都会更改我的fastObjectListView中的属性,但不要在视觉上更改任何项目。如何选择我的行?
2 回答
皈依舞
TA贡献1851条经验 获得超3个赞
您已经有了正确的答案:
gvRaces.SelectObject(obj , true);
这也将起作用(并且可能更多地是您想要的):
gvRaces.SelectedObject = obj;
Rev1.0的观点仍然有效-确保obj
实际上是控件中的一个对象。该控件用于Equals()
确定两个对象是否相等。
另外,请确保olv.HideSelection
为false
。这是一个非常烦人的MS提供的属性,当ListView
它没有焦点时会关闭选择。它使它看上去似乎SelectObject()
在实际上没有工作时就没有工作。
烙印99
TA贡献1829条经验 获得超13个赞
简而言之:您做错了。使用ObjectListView或任何相关控件时,通常不要直接触摸Items集合或ListViewItems。
您应该阅读该教程,尤其是“心理变速”和“必须学习”。
当心ListViewItems。您无需将ListViewItems添加到ObjectListView。如果您发现自己在Items集合中添加了东西,创建ListViewItems或在任何东西中添加了子项目,那么您需要停止–您被迷住了。ObjectListView为您完成所有工作。它拥有ListViewItems并将根据需要销毁并重新创建它们。您的工作是告诉ObjectListView您希望ListViewItems包含哪些信息,然后为其提供要显示的对象列表。
抵制添加,编辑,删除或以其他方式与ListViewItems混淆的诱惑-这将无法工作。
- 2 回答
- 0 关注
- 223 浏览
添加回答
举报
0/150
提交
取消