Domanda

ho questo problema, ho creato il mio DataGridViewColumn e vorrei aggiungere alcune proprietà che possono essere modificate in designtime editing ... qui è il mio codice:

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

e in effetti è ok, quando si apre l'editor di colonna, si vede questa proprietà sotto la categoria Mare e si può cambiare, ma quando è stata modificata, se si va al file .Designer.cs, si vede il MaxLength valore da 0 .. nessun cambiamento ... qual è il problema?? grazie in anticipo

È stato utile?

Soluzione

La Progettazione form fa qualche inganno interna in modo da permettere di cambiare il tipo di colonna (ad esempio da DataGridViewTextBoxColumn a DataGridViewButtonColumn) in fase di progettazione. Come conseguenza di questo, il designer si basa sulla vostra sottoclasse di DataGridViewColumn avere un metodo Clone() correttamente attuate, cioè:

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

Se non l'override del metodo Clone(), il progettista non commettere tutte le modifiche apportate ai valori delle proprietà personalizzate.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top