2010-05-10 4 views
0

Je crée plusieurs classes DataGridViewCell personnalisées pour gérer différents cas dans mon application C#. Une des classes personnalisées est associée à des données en lecture seule, donc j'essaye de rendre la cellule elle-même en lecture seule.Personnalisation de DataGridViewCell ReadOnly

J'ai d'abord essayé de définir la propriété ReadOnly dans le constructeur, mais cela provoque une exception InvalidOperationException: "La propriété ReadOnly d'une cellule ne peut pas être définie avant d'être ajoutée à une ligne."

Quelle méthode dois-je redéfinir (c'est-à-dire, quelle méthode ajoute la cellule à la ligne), afin que je puisse définir la propriété ReadOnly?

Répondre

0

Il ressemble à la façon d'obtenir le comportement souhaité (interdire l'utilisateur de modifier les données dans la cellule) est de passer outre la propriété EditType dans la sous-classe DataGridViewCell:

public override Type EditType 
    { 
     get 
     { 
      return null; 
     } 
    } 

Cela permet de maintenir la cellule d'afficher un contrôle d'édition, rendant par conséquent la cellule en lecture seule.