Domanda

In teoria è possibile derivare da un modulo, ma è qualcosa che non si dovrebbe fare? Io intuitivamente la penso così, ma non ho mai sentito parlare di qualsiasi regola come questa.

Voglio dire qualche classe conrete che deriva già dalla forma. Per esempio, se ho class MyForm : Form, la domanda è: posso derivare da MyForm

?
È stato utile?

Soluzione

Abbiamo avuto il successo che deriva da una classe modulo e quindi derivare tutte le nostre forme nel progetto da esso. Esso ci permette di applicare facilmente le politiche a livello di progetto. Tutti i nostri moduli hanno un aspetto coerente. E 'anche reso facile avere ogni forma ricorda la sua dimensione e la posizione.

Altri suggerimenti

dovrebbe provenire dalle forme durante la creazione di una nuova forma di Windows. Quando si crea un nuovo modulo in Visual Studio, i file di origine che si ottiene già provenire dalle forme.

Non esiste una regola dura e veloce che ti impedisce di derivare un Windows Form. Se si dispone di una buona ragione per farlo (ad esempio, bullonatura in alcune caratteristiche comuni in tutto il progetto in tutte le forme), poi andare avanti.

E 'perfettamente ragionevole per ricavare forme da una classe Form-derived base comune, e può essere utile per avere un aspetto standard per l'applicazione.

mi raccomando che eredita da un BaseForm. Questo rende molto facile da f.e. fare tutte EditForms sosia, perché è possibile impostare i controlli comuni sulla base (come bottoni), dare loro una backcolor / immagine, ecc Lo stesso vale per tutti i tipi di forme che possono essere raggruppati. Di solito ho 1 BaseForm e poi di nuovo un BaseForm in base ad esso è 'gruppo' (di modifica, l'elenco, finestra, ...)

Ti fa WinApp sembrare più consistente.

Lo stesso vale per il codice, di solito sotto forma Edit hanno una base di codice simile: la validazione, salvare la logica, ... Si può mettere tutto questa logica sul BaseForm (s) e quindi avere un paio di metodi astratti che è possibile implementare sul ChildForm.

La domanda in realtà dipende da ciò che la vostra classe derivata fa.

Forma e molte classi tal fine sono progettati per fare un sacco di compiti complessi per darvi i vantaggi di attività legate forma senza dover codificare troppo.

La regola sarebbe qualcosa come questo: "Se avete intenzione di fare una semplice operazione finestra, e se non può disturbare il comportamento regolare, allora è meglio non provenire dalle forme.

O poiché la forma è molto carico, è possibile risparmiare memoria e tempo di CPU derivandola da classi base al posto della forma.

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