我正在尝试同步2个列表视图,因此其中一个实际上是一列的“冻结窗格”(想想excel freeze-headers)。
但是,滚动时我很难让顶级项目同步。我需要在header-list视图中隐藏垂直和水平滚动条,这可以通过将Scrollable设置为false来实现。虽然这似乎禁用了'EnsureVisible'和'TopItem'功能?
我拦截了主列表视图上的滚动条消息,因此我知道何时滚动它,仅仅由于某种原因我无法更新标题列表视图中的顶部项目以匹配。
我更新标题列表视图的代码如下:
//On vertical scroll click...
if (e.Type == ScrollEventType.EndScroll)
{
int index = lvwHeader.FindItemWithText(lvwSource.TopItem.Text).Index;
ListViewItem item = lvwHeader.Items[index];
lvwHeader.TopItem = item;
System.Diagnostics.Debug.WriteLine(lvwHeader.TopItem.Text + " - " + lvwSource.TopItem.Text);
}
所以我想知道是否还有另一种方法可以强制标题列表视图将项目设置为topitem而Scrollable = false,或者是否有更好的方法来解决此问题?
非常感谢