ObjectListView不显示所选项目的选择颜色

Gra*_*per 1 c# listview winforms objectlistview

我有一个ObjectListView基本上是标准.NET的包装器ListView.我的问题是我无法找出正确的方法调用序列,以向控件添加新对象,滚动控件以确保对象可见,并选择对象.下面,是我的代码实现这一点.一切正常,但由于某种原因,在我点击或重新调整其中一列之前,所选项目/对象的背景颜色不会显示.我不确定控件是否没有被聚焦或是什么.

// objectListViewItems is of type BrightIdeasSoftware.ObjectListViewItems
objectListViewItems.AddObject(e.InsertedItem);
objectListViewItems.Refresh();
objectListViewItems.Focus();
objectListViewItems.EnsureModelVisible(e.InsertedItem);
objectListViewItems.SelectedObject = e.InsertedItem;
objectListViewItems.Focus();
Run Code Online (Sandbox Code Playgroud)

下面的代码更新了ObjectListView中的一个项目,并且运行正常.不确定我上面做错了什么......

objectListViewItems.RefreshObject(itemToEdit);
objectListViewItems.Focus();
objectListViewItems.SelectObject(itemToEdit);
Run Code Online (Sandbox Code Playgroud)

Rev*_*1.0 5

这应该像你提出的那样工作(我曾多次这样做).但是,呼叫Refresh()和第二个Focus()是不必要的.此外,我宁愿使用SelectObject()SelectedObject财产.

像这样:

objectListView.AddObject(newItem);
objectListView.Focus();
objectListView.EnsureModelVisible(newItem);
objectListView.SelectObject(newItem);
Run Code Online (Sandbox Code Playgroud)

此外,请确保之后没有执行任何代码,这可能会导致另一个控件获得焦点.

要缩小正在发生的事情,你可以尝试设置

objectListView.HideSelection = false;
Run Code Online (Sandbox Code Playgroud)

对于法线ListView,这确保了当前选择保持可见(但"灰显"),即使控件失去焦点.

InitializeComponent()如果您使用了设计器,请发布完整的OLV配置(从).也许有一些奇怪的星座造成这种情况.