2009-12-17 9 views
0

J'ai hérité de DataGridViewTextBoxCell car j'ai besoin d'ajouter une propriété personnalisée.Substitution de DataGridViewTextBoxCell et de CellPainting

Lors de l'exécution après la création de l'instance de DataGridView et de lier les données que je fais ce qui suit:

For k As Integer = 0 To grid.Columns.Count - 1 
       grid.Columns(k).AutoSizeMode = DataGridViewAutoSizeColumnMode.ColumnHeader 
       If k > 0 Then grid.Columns(k).CellTemplate = New CustomCell() 
Next 

avec la tentative d'ajouter à chaque colonne différente de la première du CustomCell.

Le problème est que quand j'attache à l'événement CellPainting de la grille et ne

If e.ColumnIndex < 0 OrElse e.RowIndex <= 0 Then Return 

Dim grid As DataGridView = TryCast(sender, DataGridView) 
If grid Is Nothing Then Return 
If grid.Columns.Count < e.ColumnIndex OrElse grid.Rows.Count < e.RowIndex Then Return 

Dim cell As CustomCell = TryCast(grid(e.ColumnIndex, e.RowIndex), CustomCell) 
If cell Is Nothing Then Return 

le type cellulaireest de type jamais CustomCell mais il reste DataGridViewTextBoxCell.

Avez-vous une idée de la façon dont je peux résoudre ce problème?

Je travaille avec VS2008 et Framework 3.5

Répondre

0

Je crois que vous souhaitez ajouter une colonne personnalisée. Voici un article que je crois peut-être utile - Code Magazine.

+0

J'ai regardé l'article, intéressant, mais cela ne résout pas mon problème. Je ne veux pas ajouter une colonne personnalisée mais seulement cusotmize le DataGridViewTextBoxCell en ajoutant quelques propriétés – Drake