2008-10-23 10 views
0

J'ai créé un DataGridViewCell personnalisé qui affiche un contrôle personnalisé au lieu de la cellule; mais si DataGridView utilise des lignes partagées, l'instance de contrôle personnalisée est également partagée, de sorte que vous obtenez un comportement étrange (par exemple, survoler les boutons met en surbrillance tous les boutons). En outre, je ne peux pas accéder à la propriété DataGridViewCell.Selected, donc je ne sais pas de quelle couleur peindre la ligne.Comment empêcher un DataGridView de partager des lignes?

Comment empêcher un DataGridView de partager des lignes? Je sais que je peux ajouter les lignes en utilisant le déroutement Rows.Add (object []), mais la première ligne est toujours partagée (c'est-à-dire a l'index -1) donc le problème avec les couleurs s'applique toujours.

Je dois être en mesure de dire à DataGridView de ne pas partager une ligne contenant une cellule personnalisée. Cela peut-il être fait avec des attributs? Peut-il être fait du tout?

Répondre

2

essayer de mettre en une info-bulle texte dans une cellule de la ligne

Une ligne ne peut pas être partagée dans l'une des situations suivantes: La ligne contient une seule cellule sélectionnée qui se trouve pas dans une colonne sélectionnée. La ligne contient une cellule avec son jeu de propriétés ToolTipText ou ContextMenuStrip. La ligne contient un DataGridViewComboBoxCell avec son jeu de propriétés Items.

ou lire

http://msdn.microsoft.com/en-us/library/ha5xt0d9.aspx

pour plus d'informations

+0

C'est un peu hacky, mais ça ira. Merci! – Simon

+0

+1, Merci beaucoup, passé des heures à essayer de trouver comment forcer cette – smirkingman

1
DataGridViewRowCollection.AddRange(params DataGridViewRow[] dataGridViewRows) 

avec

new[]{someDataGridviewRow} 

a fonctionné pour moi.

Questions connexes