2010-10-29 3 views
5

Sto scrivendo un programma in Visual Basic 2010. È un HMI (Human-Machine Interface) e quindi ha un'intera serie di pulsanti che inviano semplicemente comandi ad altri dispositivi. Di conseguenza, esiste una grande quantità di gestori di eventi per i pulsanti di selezione che non possono essere suddivisi in moduli (a meno che la mia comprensione dei moduli non sia corretta).È possibile suddividere un file Visual Basic (.NET/2010) per la leggibilità?

In sostanza, mi piacerebbe essere in grado di spostare tutti i gestori di eventi, per esempio, premere un pulsante su un altro file. Questo può essere fatto o è importante che rimangano in "MainWindow.xaml.vb"? (Tutti i miei pulsanti si trovano in una finestra a schermo intero, alcuni sono nascosti da schede).

Grazie,

--Erik T

+0

Come e quando rompere le cose in moduli è qualcosa che vi ritroverete a rivedere ancora e ancora. Le classi parziali risolveranno il tuo problema, ma IMO non è lo scopo delle classi parziali - le classi parziali sono state aggiunte per lo più in modo che il codice generato in modo programmatico possa essere in un file diverso. – quillbreaker

risposta

13

È possibile utilizzare Partial Classes per suddividere la definizione della classe in più file che potrebbero aiutare a organizzare il codice.

Il collegamento in alto spiegherà esattamente come utilizzare le classi parziali. Il seguente link vi mostrerà la VB.NET sintassi (e come utilizzare Progettazione classi di dividere le cose):

How to: Split a Class into Partial Classes

+0

Dovrei essere in grado di migrare una porzione decente del mio codice in un file separato come questo. Eccezionale! – evilspoons

+0

FWIW, questo ha funzionato, ma se si spostano i gestori di eventi in un file separato tramite classi parziali, il progettista XAML in Visual Studio 2010 non può più fornire un comodo collegamento al gestore eventi tramite la finestra Proprietà (viene visualizzato come vuoto e fai doppio clic su di esso creerai un nuovo gestore di eventi vuoto ... e poi la compilazione ovviamente si lamenterà di più firme identiche. – evilspoons

3

È possibile utilizzare Partial Classes quella di suddividerle in file separati, se necessario.

3

Mi piace usare le regioni per nascondere il codice (il codice evidenziatore dose non farlo genere di cose così male usare un'immagine) alt text

Tenete a mente che questa è solo nasconde il codice in VS il file è ancora compleatly intatto e il compilatore sarà solo ignorare le #Region e #End Region linee

+0

Ho utilizzato le regioni, ma non sono di grande aiuto quando si dispone di una pagina di 400 piedi che si desidera solo avere più sezioni in diverse schede di Visual Studio. Comunque un buon consiglio comunque. – evilspoons

+0

ahh, vero, dipende davvero dalla persona che immagino. – giodamelio

1

Potresti invece separare alcune delle funzionalità in controlli personalizzati? Forse addirittura creare i pulsanti al volo sulla base di alcuni dati esterni?

1

Per la modularità dell'interfaccia utente, è possibile esplorare le capacità di composizione di WPF/SL descritte con here e con gli helper e gli esempi here. Ma è un'architettura molto diversa e potrebbe essere un importante refactoring se hai già un sacco di codice.

Per i pulsanti, si dovrebbe essere in grado di utilizzare il comando che dovrebbe nascondere la maggior parte dei gestori di eventi. Leggi informazioni sul comando here.

+0

In realtà sto usando il WPF, ma lo sto usando con una mentalità Windows Form. Sono passato principalmente a WPF, quindi la mia app si sarebbe adattata a risoluzioni dello schermo diverse con il minimo sforzo. Il comando sembra affascinante e anche la vista potrebbe aiutarmi. Grazie! – evilspoons

+0

@evilspoons: siete i benvenuti! Sono d'accordo che la transizione da Windows Form a MVVM è un grande salto, ma ne vale davvero la pena. Provalo su un progetto su piccola scala, e vedrai i benefici rapidamente, se cerchi SO, troverai moltissime risorse su MVVM :) – Matthieu

Problemi correlati