I'm trying to sync up 2 list views, so that one of them is effectively a 'freeze pane' of one column (think excel freeze-headers).
However, I am having difficulty in getting the top items to sync up when scrolling. I need to hide the vertical and horiz开发者_如何学Pythonontal scrollbars on the header-list view, which can be achieved by setting Scrollable to false. Though this seems to disable the 'EnsureVisible' and 'TopItem' functionality?
I have intercepted the scroll bar messages on the master listview, so I know when that is being scrolled, just for some reason I'm unable to update the top item on the header listview to match up.
The code I have for updating the header listview is as follows:
//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);
}
So I was wondering if there was another way to force the header listview to set an item as the topitem whilst Scrollable = false, or if there was a better way to approach this?
Many thanks
精彩评论