Domanda

Sto cercando aiuto per impostare un nuovo valore di proprietà predefinito per un controllo ereditato in Visual Studio:

class NewCombo : System.Windows.Forms.ComboBox
{
  public NewCombo() { DropDownItems = 50; }
}

Il problema è che la proprietà della classe base DropDownItems ha un attributo 'default' impostato su di esso che ha un valore diverso (non 50).Di conseguenza, quando trascino il controllo su un modulo, il file di progettazione ottiene un file esplicitamente mycontrol.DropDownItems = 50; linea.

All'inizio, questo non ha importanza.Ma se in seguito cambio la mia classe ereditata in DropDownItems = 45; nel costruttore, ciò non influisce su nessuno dei controlli su alcun modulo poiché tutti quei file di progettazione hanno ancora il valore 50 codificato al loro interno.E il punto era avere il valore impostato in un unico posto in modo da poter gestire il cliente che cambia idea.

Ovviamente, se stessi creando la mia proprietà personalizzata nella sottoclasse, potrei assegnarle il proprio attributo predefinito del designer di qualunque cosa volessi.Ma qui voglio modificare i valori predefiniti delle proprietà nella base.Esiste un modo per applicare gli attributi di Visual Studio a un membro della classe base?Oppure c'è qualche altra soluzione alternativa per ottenere il risultato che desidero?

È stato utile?

Soluzione

Nella tua classe derivata devi sovrascrivere (o shadow using nuovo) la proprietà in questione e quindi applicare nuovamente l'attributo del valore predefinito.

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