gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 20:19:31 24 4
gpt4 key购买 nike

我有一个 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();

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

objectListViewItems.RefreshObject(itemToEdit);
objectListViewItems.Focus();
objectListViewItems.SelectObject(itemToEdit);

最佳答案

这应该像您建议的那样工作(我曾多次这样做)。但是,调用 Refresh() 和第二个 Focus() 是不必要的。此外,我宁愿使用 SelectObject() 而不是 SelectedObject 属性。

像这样:

objectListView.AddObject(newItem);
objectListView.Focus();
objectListView.EnsureModelVisible(newItem);
objectListView.SelectObject(newItem);

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

要缩小范围,您可以尝试设置

objectListView.HideSelection = false;

对于普通的 ListView,这确保当前选择保持可见(但“变灰”),即使控件失去焦点也是如此。

如果您使用设计器,请发布完整的 OLV 配置(来自 InitializeComponent())。也许有一些奇怪的星座导致了这一点。

关于c# - ObjectListView 不显示所选项目的选择颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14485193/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com