2009-05-06 8 views
3

Nous avons largement utilisé DataGridView dans notre client. Nos clients veulent être en mesure d'entrer de grandes quantités de texte dans une rangée - trop pour être affichés dans la hauteur de la DataGridView - et de les faire défiler en utilisant la barre de défilement principale - c'est-à-dire la barre de défilement de DataGridView. Cependant, le DataGridView ne défilera que si une ligne est accrochée au début du contrôle. Si une ligne est plus grande que DataGridView, vous pouvez seulement voir le dessus.Comment faire un DataGridView qui n'aligne pas ses lignes au sommet du contrôle?

Comment faire pour que DataGridView n'aligne pas ses lignes en haut du contrôle?

+0

J'adorerais avoir une réponse à cette question, car nous venons de rencontrer le même problème. – LegendLength

Répondre

1

La réponse de base est que vous ne pouvez pas. DataGridView se peint en déterminant la ligne supérieure actuelle, puis en peignant cette ligne supérieure dans le coin supérieur gauche, puis en continuant vers le bas (vous pouvez voir ceci en utilisant Reflector pour regarder la méthode PaintRows de DataGridView).

Au lieu d'essayer de faire défiler toute la ligne, pourquoi ne pas utiliser une zone de texte de dimensionnement automatique? Il augmentera sa hauteur au fur et à mesure que l'utilisateur tape, et il pourra faire défiler la boîte de texte elle-même.

2

Mettez le DataGridView dans un contrôle Panel et rendre le panneau scrollable. Assurez-vous que le Dock de DataGridView est défini sur None et que Height est défini sur la somme des hauteurs des lignes de la grille.

+0

oui, c'est à peu près comment j'ai fini par travailler autour du problème. Cependant, cela ne fonctionne pas avec le mode virtuel. – Simon

Questions connexes