Posso impedire SharpDevelop vista di disegno da impostare il valore di una proprietà in InitializeComponent?

StackOverflow https://stackoverflow.com/questions/4726142

Domanda

mi sto trovando che il Design View (DV) è bello, ma cercando di cambiare il modo in cui automagicamente inietta codice in InitializeComponent è molto difficile. E a volte le sue pause codice automagici il programma.

Per esempio, DV vede automaticamente ogni singola proprietà della mia UserControl personalizzato, quindi assegna ogni singola proprietà di un certo valore in InitializeComponent. Ma io non voglio che per assegnare i valori di alcune delle proprietà perché alcuni dei miei setter lancerà un'eccezione di runtime se non utilizzati correttamente. Potrei correggere InitializeComponent manualmente, ma in qualsiasi momento faccio una modifica al progetto, SharpDevelop sarà solo rigenera nuovamente la funzione.

E c'è un altro caso in cui ho il costruttore di default impostare la dimensione in base a determinati fattori, ma poi InitializeComponent immediatamente impostarlo su un altro valore statico.

Come posso dire DV a non valori automagically assegnare a alcune proprietà mi definisco?

È stato utile?

Soluzione

A meno che non ho capito male il tuo scenario, sembra che si sta abbaiando contro l'albero sbagliato, cercando di modificare o riconfigurare il comportamento di SharpDevelop. Anche se si riesce a cambiare, non si interesserà di Visual comportamento di Studio, e non sarà aiutare uno qualsiasi degli altri consumatori di controllo personalizzato che non capita di (e / o non vogliono) di configurare la loro progettista di conseguenza.

Al contrario, sembra che si deve solo segnare le proprietà esposte dal vostro controllo personalizzato con il attributo [DesignerSerializationVisibility] . Questo indica al progettista esattamente come valore della proprietà deve essere serializzato nel metodo InitializeComponent.

Avete una scelta di href="http://msdn.microsoft.com/en-us/library/bd9as8d1.aspx" tre diversi valori :

  • Visible indica che il valore della proprietà deve essere mantenuta nel codice di inizializzazione
  • Hidden indica che il valore per la proprietà deve non essere persistito nel codice di inizializzazione
  • Content indica che il codice di inizializzazione dovrebbe essere generato per ogni pubblico (non nascosto) proprietà dell'oggetto assegnato alla proprietà

Il valore predefinito è Visible, che provoca un valore di proprietà essere serializzato quando possibile.

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