>Hola a todos.
>Como puedo hacer para detectar algún cambio en un formulario que tiene varios objetos de distinto tipo ?
>La idea es habilitarle al usuario los botones para grabar o revertir (save/undo) solo cuando sea necesario. Si este modifica algún dato de uno de los objetos del Form (TextBox, ComboBox, etc.)
>Puedo usar los eventos InteractiveChange o ProgrammaticChange, pero debo controlar uno por uno los objetos del Form y a veces hay demasiados.
>Lo mejor es crear este método en la clase contenedora, así los Forms de gestión de datos hereden de esta.
>Alguna idea ?
>
>Desde ya muchas gracias.Esa es una función básica de un Framework. En el que uso (Visual MaxFrame Professional), todas las clases base de controles tienen código en InteractiveChange() y en ProgrammaticChange() que llama a un OnChange() en ese control.
OnChange() tiene código para saber si se llamó de Interactive o Programmatic, en caso que alguna vez quieras tratarlos en forma diferente y el código genérico para todos donde cambias el estado de tu form de modo navegación a modo de edición. VMP los usa con ThisForm.SetMode("DEFAULT") / "ADD" / "EDIT" segun corresponda.
Todos los controles en uso en cada contenedor responden a mensajes para cambiar la propiedad Enabled (entre otras) según este cambio de modo.
Una de las mayores ventajas de un buen Framework es que tienes ya todo el código genérico hecho y te padsas el tiempo diseñando y desarrollando tu programa en lugar de lo básico que todo programa necesita y re-usas en cada proyecto. El costo de un Framework es mínimo considerando la cantidad de trabajo que te llevaría hacerlo. Se amortiza fácilmente en uno o dos proyectos.