2010-10-29 16 views
5

Estoy escribiendo un programa en Visual Basic 2010. Es una HMI (interfaz hombre-máquina) y, por lo tanto, tiene toda una serie de botones que simplemente envían comandos a otros dispositivos. Como resultado, hay una gran pila de controladores de eventos para hacer clic en los botones que realmente no se pueden dividir en módulos (a menos que mi comprensión de los módulos sea incorrecta).¿Se puede dividir un archivo de Visual Basic (.NET/2010) para facilitar la lectura?

Esencialmente, me gustaría poder mover todos los controladores de eventos, por ejemplo, presionar un botón a un archivo diferente. ¿Se puede hacer esto o es importante que permanezcan en "MainWindow.xaml.vb"? (Todos mis botones residen en una ventana de pantalla completa, algunos están ocultos por pestañas).

Gracias,

--Erik T

+0

Cómo y cuándo dividir las cosas en módulos es algo que volverá a visitar una y otra vez. Las clases parciales resolverán su problema, pero el propósito de la OMI no es el objetivo de las clases parciales: se agregaron clases parciales, por lo que el código generado programáticamente podría estar en un archivo diferente. – quillbreaker

Respuesta

13

Puede usar Partial Classes para dividir su definición de clase en varios archivos que pueden ayudar a organizar su código.

El enlace de arriba le ayudará a explicar exactamente cómo usar las clases parciales. El siguiente enlace le mostrará la sintaxis VB.NET (y cómo utilizar el Diseñador de clases para dividir las cosas):

How to: Split a Class into Partial Classes

+0

Debería poder migrar una porción decente de mi código a un archivo separado como este. ¡Increíble! – evilspoons

+0

FWIW, funcionó, pero si mueve los controladores de eventos a un archivo separado a través de Clases parciales, el diseñador de XAML en Visual Studio 2010 ya no puede darle un enlace conveniente al controlador de eventos a través de la ventana Propiedades (aparece como en blanco y haciendo doble clic creará un nuevo controlador de eventos en blanco ... y luego la compilación se quejará, por supuesto, de varias firmas idénticas.) – evilspoons

3

Usted puede utilizar Partial Classes dividir estos en archivos separados, si es necesario.

3

me gusta usar regiones para ocultar código (el marcador código de dosis no hacer esto cosa un poco utilizar tan mal una imagen) alt text

Tenga en cuenta que esto sólo se esconde el código en el archivo VS sigue siendo compleatly intacto y el compilador simplemente ignorar los #Region y #End Region líneas

+0

He estado usando regiones, PERO realmente no me ayudan cuando tienes una página de 400 pies de largo en la que realmente solo deseas tener varias secciones en diferentes pestañas de Visual Studio. Aún así es un buen consejo. – evilspoons

+0

ahh, es cierto que realmente depende de la persona, supongo. – giodamelio

1

¿Podría separar parte de la funcionalidad en controles personalizados en su lugar? Posiblemente incluso crear los botones sobre la marcha en función de algunos datos externos?

1

Para la modularidad de la interfaz de usuario, puede explorar las capacidades de composición de WPF/SL descrito here y con ayudantes y ejemplos here. Pero es una arquitectura realmente diferente, y podría ser una refactorización importante si ya tienes un montón de código.

Para los botones, debería poder usar comandos que deberían ocultar la mayoría de los controladores de eventos. Lea sobre comandar here.

+0

En realidad, estoy usando WPF, pero lo estoy utilizando con una mentalidad de Windows Forms. Principalmente cambié a WPF para que mi aplicación escalara a diferentes resoluciones de pantalla con un mínimo esfuerzo. El comando parece fascinante, y las vistas también podrían ayudarme. ¡Gracias! – evilspoons

+0

@evilspoons: ¡Bienvenido! Estoy de acuerdo en que la transición de Windows Forms a MVVM es un gran salto, pero realmente lo vale. Pruébalo en un proyecto a pequeña escala, y verás los beneficios rápidamente, si buscas SO, encontrarás toneladas de recursos sobre MVVM :) – Matthieu

Cuestiones relacionadas