2009-05-04 8 views
0

J'ai une forme très simple en utilisant le cadre compact. J'ai deux champs de recherche un bouton de recherche et une grille de données. Le bouton définit DataSource pour un DataGrid sur le formulaire. Je sais que je peux définir la hauteur et la largeur sur le DataGrid mais je ne veux pas que l'utilisateur doive utiliser les barres de défilement sur le DataGrid car il a quelques centaines d'enregistrements. Je veux juste que l'utilisateur utilise la barre de défilement sur le formulaire pour faire défiler. Comment puis-je accomplir cela?Datagrid défilement dans Windows s façon Mobile pour se débarrasser de la barre de défilement?

Répondre

0

Je suppose que le comportement souhaité est pour une barre de défilement verticale qui enjambe la hauteur totale du formulaire pour naviguer dans les enregistrements du DataGrid. Ce DataGrid ne prend pas tout l'espace sur le formulaire.

Vous pouvez ajouter un VScrollBar sur le côté du formulaire et définir son Maximum sur le nombre total de lignes de votre DataGrid. Puis attachez à l'événement ValueChanged de la barre de défilement et manipulez la ligne sélectionnée de votre DataGrid. Ce serait en effet imiter le comportement de défilement du DataGrid.

La partie difficile est de cacher la barre de défilement du DataGrid, car il n'y a pas de propriété pour le cacher. Vous pouvez étendre sa largeur afin que la barre de défilement soit affichée hors écran, mais n'oubliez pas de définir la propriété AutoScroll du formulaire sur false afin qu'elle ne produise pas une barre de défilement horizontale qui afficherait le DataGrid kludge. En fonction de votre application, vous pouvez utiliser ListView avec la propriété View définie sur Details. Le ListView est beaucoup plus facile à manipuler dans le cadre compact et pourrait mieux s'adapter à votre application. Vous pouvez toujours utiliser la même technique ci-dessus et l'appliquer au ListView si vous le souhaitez.

+0

Votre hypothèse est un peu mal. Je veux utiliser le formulaire AutoScroll et cacher la barre de défilement DataGrids. Le DataGrid ramène plus de 700 enregistrements de sorte qu'il occupe plus de la totalité de la zone visible du formulaire. Peut-être que j'ai besoin de savoir combien de lignes sont dans la grille de données et de voir combien cela serait en pixels et définir la propriété hauteur de données à des lignes * pixels par ligne. Toutes les idées (je ne suis pas sûr comment savoir combien de lignes il y a) –

0

Vous devez obtenir le nombre de lignes du DataSource. Cast comme l'exemple ci-joint pour produire le nombre de lignes: (rsMissingItems est un objet SqlCeResultSet)

Dim intRecCnt As Int32 = DirectCast(rsMissingItems.ResultSetView, ICollection).Count 
Questions connexes