Mostrando entradas con la etiqueta ListBOx. Mostrar todas las entradas
Mostrando entradas con la etiqueta ListBOx. Mostrar todas las entradas

sábado, 18 de julio de 2020

Combos anidadas, ListBox de selección y DataGridView

En este ejemplo vamos a ver cómo anidar varias combobox de manera que cargada la combo inicial, se carga una segunda combo tomando el valor elegido en la primera como parámetro de búsqueda para la segunda combo y así sucesivamente hasta la última.

En el caso de la la última combobox en vez de otra combo se cargará un listbox a partir del cual seleccionaremos uno, varios o ningún valor con botones de selección simple o múltiple.

En el ejemplo particular la primera combo cargará una lista de países, la segunda una lista de dominios que dependerá de cada país, por ejemplo, al seleccionar Francia en los dominios puede aparecer Tahití, Guayana, etc. 
A partir de cada Dominio se cargará un combo con los subdominios ( P. ej. provincias de cada dominio). El Ownership será la lista de responsables de cada territorio, Entidad Conceptual. será la lista de entidades a cargo de cada Ownership, (Por ejemplo, Carreteras, Sanidad, Educación) y finalmente Entidad de Explotación. será la lista de entidades derivadas de cada entidad principal. Por ejemplo si elegimos educación podemos tener Escuelas, Universidades, Institutos de investigación, etc.

Para realiza este ejemplo abrimos un proyecto de visual Basic y dibujamos un formulario como este:

formulario con combos y dos listbox

viernes, 30 de agosto de 2013

Trabajar con métodos

Este artículo es la continuación de la implementación de un Primer Programa Orientado a Objetos. Aquí veremos cómo crear métodos de la clase, cómo sobrecargarlos y cómo rellenar un ListBox utilizando el objeto ArrayList de .NET. También veremos como agregar un control a un formulario en tiempo de ejecución. Finalmente utilizaremos los métodos para arrastrar y soltar objetos dentro de un formulario.

Consideraciones en el diseño de clases reutilizables


La idea de la POO es hacer que nuestro código pueda ser reutilizable o incluso exportable a otros programas a través del conocido Copiar y Pegar, para hacer esto posible hay que tener en cuenta algunos conceptos importantes:


Abstracción


Cuando se crea una clase, existe la tentación de agregar una gran cantidad de funciones de apoyo, no obstante hay que tener en cuenta que cada método, propiedad o evento que se añada a la clase va a limitar las opciones de reutilización de la clase. También es necesario saber que una clase debe hacer una cosa bien. Si utilizamos una abstracción clara, será más fácil para los desarrolladores, pues sus métodos y propiedades tendrán sentido y su comportamiento será más predecible.


Contención


Una clase es una especie de caja negra donde se almacena un tipo de objeto con datos diversos y los métodos que trabajan con ellos, por ejemplo La clase CHospital puede almacenar Nombres, direcciones, Números de habitación, Historias clínicas o cualquier otra cosa. Por lo tanto, hay que tener cuidado de no hacer ninguna suposición sobre el contexto de la clase. A pesar de que se va a desarrollar una clase en un contexto de una aplicación de Windows, la clase no debe contener ninguna referencia a un formulario.

Es posible que se desee añadir un comportamiento que dependa del código de cliente. Se podría añadir un método que tome un argumento para especificar una forma de tratar la infoirmación. En este caso es mejor agregar un método que cree un objeto específico de .NET
De tal forma que sea utilizable a través de una serie de códigos de cliente más amplia.

Por ejemplo, si se desea agregar código que muestre un dibujo de un hospital para cada hospital agregado. Se puede añadir un método que cree un objeto de .NET Graphics. Esto nos va permitir escribir código para dibujar el hospital en cualquier objeto que contenga un objeto Graphics de .NET.

Código Cliente


Si la clase está bien diseñada, el código de cliente se simplificará mucho, las estructuras de decisión y los bucles estarán contenidos en los métodos de la clase, de este modo no aparecerán en el código de cliente que se limitará a llamadas a los métodos de las clases.


Interfaz


Hay que proporcionar una interfaz completa, pero sin exajerar. Implementar el interfaz lo suficientemente bien como para que un posterior desarrollador  pueda extenderla. Por ejemplo, la clase CHospital tiene un método para dar de alta a un Médico en un hospital y otro para Ubicar un paciente en una sala, pero posteriormente se puede seguir completando, añadiéndo metodos por ejemplo para asignar una especialidad a un médico o un paciente a un médico.


A continuación continuamos añadiendo funcionalidad a la Clase CHospital, en este caso agregaremos un constructor y más métodos.

métodos el la programación orientada a objetos