2009-03-17 5 views
1

J'essaie de créer une classe de cellule DataGridView qui héberge un contrôle (tout le temps, pas seulement lors de l'édition). Jusqu'à présent, mon approche a été d'ajouter le contrôle à la grille et d'essayer de synchroniser sa position avec celle de la cellule.Puis-je avoir un contrôle 'hors écran'?

Serait-il possible de garder la cellule hors de l'écran, de lui envoyer les événements de la souris et du clavier et de la peindre sur la cellule? MISE À JOUR: Par "hors écran", je ne veux pas dire qu'il devrait être ajouté à un autre contrôle de sorte qu'il ne soit pas affiché; Je veux dire qu'il ne devrait jamais être ajouté à un autre contrôle.

Répondre

1

Vous pouvez créer un contrôle sans l'ajouter au formulaire, puis l'utiliser comme éditeur de cellule chaque fois que vous en avez besoin. Généralement avec les grilles, lorsque vous cliquez sur une cellule pour la modifier, elle crée un nouveau contrôle et le place au bon endroit, ou bien il utilise un contrôle existant. Vous pouvez faciliter ce processus en créant vos propres types de cellule/colonne personnalisés. Voir cette page MSDN: http://msdn.microsoft.com/en-us/library/7fb61s43.aspx.

La plupart des grilles (y compris DataGridView et les grilles tierces) ont la possibilité d'ajouter des cellules personnalisées.

+0

Je ne suis pas intéressé à l'utiliser comme contrôle d'édition - je veux utiliser le contrôle à la place de la cellule tout le temps. – Simon

+0

Donc, c'est une seule cellule qui a ce contrôle flottant tout le temps? Ou est-ce toute une colonne de cellules? –

Questions connexes