C# la mise en Œuvre de la fonction de Défilement Automatique dans une liste tout en Drag & laisser Tomber
Comment puis-je mettre en œuvre Défilement Automatique (par exemple, la liste défile lorsque vous vous approchez le haut ou le bas) dans un Winforms ListView? J'ai chassé dans google avec un peu de chance. Je ne peux pas croire que cela ne fonctionne pas hors de la boîte!
Merci d'avance
Dave
OriginalL'auteur David Hayes | 2009-03-19
Vous devez vous connecter pour publier un commentaire.
De défilement peut être accompli avec la ListViewItem.EnsureVisible méthode.
Vous devez déterminer si l'élément que vous êtes actuellement en faisant glisser au-dessus est à la limite visible de la vue de liste et n'est pas la première/dernière.
Puis de fil de cette méthode à l'événement DragOver.
Je n'ai pas l'obtenir. L'idée ici est un InsureVisible appel à un élément à côté de celui que vous faites glisser plus de.
Vous pouvez utiliser l'élément.EnsureVisible() après avoir vérifié que l'élément n'est pas null et éviter de se faire l'index, maxIndex, scrollZoneHeight, etc. L'utilisateur doit faire glisser un peu plus sur le bord supérieur ou inférieur, mais il fonctionne. Si vous souhaitez que l'utilisateur se déroulant juste en pointant sur le premier ou le dernier élément, alors oui, votre code est parfait.
OriginalL'auteur George Polevoy
Merci pour le lien (http://www.knowdotnet.com/articles/listviewdragdropscroll.html), je C#isés il
La réponse de George Polevoy est beaucoup plus simple que cela
Fonctionne super.
OriginalL'auteur David Hayes
Ont un coup d'oeil à ObjectListView. Il fait ce genre de choses. Vous pouvez lire le code et l'utiliser si vous ne voulez pas utiliser le ObjectListView lui-même.
OriginalL'auteur Grammarian
Juste une note pour l'avenir googlers: pour le faire fonctionner sur plus de commandes complexes (comme DataGridView), voir ce fil.
OriginalL'auteur BlueRaja - Danny Pflughoeft