aggiungere DataGridViewColumn designtime immobili
-
02-10-2019 - |
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
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.