2015-04-13 1 views
1

Comment puis-je obtenir l'index de l'élément le plus visible dans un C# ListView en utilisant le .NET Compact Framework version 3.5? Le cadre compact n'a pas la propriété TopItem dans la classe ListView.Comment obtenir l'élément le plus visible dans un ListView en utilisant Compact Framework?

Mon objectif est de récupérer l'index, d'actualiser mon ListView qui contient des données d'une base de données et de revenir à cet élément une fois l'actualisation terminée. Je peux nous la méthode EnsureVisible(int index) pour faire défiler automatiquement, mais j'ai besoin de l'index en premier.

Répondre

3

Je n'ai aucune explication quant à pourquoi il n'y a pas une propriété CF pour cela, puisque le contrôle Win32 sous-jacent le prend en charge. Vous devez appeler SendMessage avec la constante LVM_GETTOPINDEX. Quelque chose le long de ces lignes:

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); 
} 
+0

fonctionne très bien! Je vous remercie. – JT9