Question

J'ai ce problème, j'ai créé mon propre DataGridViewColumn et je souhaite ajouter quelques propriétés que vous pouvez modifier en designtime édition ... voici mon code:

private int nMaxLength;
[Description("Fondoscala valore"), Category("Sea")]
public int MaxLength
{
    get { return nMaxLength; }
    set { nMaxLength = value; }
}

et en fait est ok, lorsque vous ouvrez l'éditeur de colonne, vous voyez cette propriété dans la catégorie de la mer et vous pouvez changer, mais quand vous l'avez changé, si vous allez dans le fichier .Designer.cs, vous voyez le MaxLength valeur à 0 .. pas de changement ... quel est le problème?? merci à l'avance

Était-ce utile?

La solution

Le Concepteur de formulaires fait une supercherie interne afin de vous permettre de changer le type de colonne (par exemple de DataGridViewTextBoxColumn à DataGridViewButtonColumn) au moment de la conception. En raison de cela, le concepteur repose sur votre sous-classe de DataGridViewColumn ayant une méthode de Clone() correctement mis en œuvre, i.e.:

public override object Clone() {
    MyDataGridViewColumn that = (MyDataGridViewColumn)base.Clone();
    that.MaxLength = this.MaxLength;
    return that;
}

Si vous ne remplacez pas la méthode de Clone(), le concepteur ne commettra pas les modifications que vous apportez aux valeurs de propriétés personnalisées.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top