如何使用 Compact Framework 获取 ListView 中最可见的项目?

How to obtain the top most visible item in a ListView using Compact Framework?

如何使用 .NET Compact Framework 3.5 版获取 C# ListView 中顶部可见项的索引? ListViewclass.

中没有TopItem属性

我的目标是检索索引,刷新我的 ListView 包含来自数据库的数据,并在刷新完成后 return 到该项目。我可以使用 EnsureVisible(int index) 方法自动滚动,但我首先需要索引。

我无法解释为什么没有 CF 属性,因为底层 Win32 控件支持它。您必须使用 LVM_GETTOPINDEX 常量调用 SendMessage。沿着这些线的东西:

private const int LVM_GETTOPINDEX = 0x1027;

[DllImport("coredll.dll", SetLastError = true)]
static extern int SendMessage(IntPtr hWnd, int msg, int wParam, int lParam);

public static int GetTopIndex(this ListView lv)
{
    return SendMessage(lv.Handle, LVM_GETTOPINDEX, 0, 0);
}