yes visual tipos net mostrar mensaje mandar ejemplos dialogo cuadros confirmacion asp alerta .net winforms user-interface

.net - visual - mostrar un mensaje en c# asp net



¿Existe una forma estándar de devolver valores desde los cuadros de diálogo personalizados en Windows Forms? (5)

Así que ahora mismo mi proyecto tiene algunos diálogos personalizados que hacen cosas como avisarle al usuario por su cumpleaños, o lo que sea. En este momento solo están haciendo cosas como establecer una propiedad this.Birthday una vez que obtienen una respuesta (que es de tipo DateTime? Con el nulo que indica "Cancelar"). Luego, la persona que llama inspecciona la propiedad de Birthday del cuadro de diálogo que creó para averiguar qué respondió el usuario.

Mi pregunta es, ¿hay un patrón más estándar para hacer cosas como esta? Sé que podemos configurar this.DialogResult para OK básico / cancelar cosas, pero ¿hay una forma más general en Windows Forms para que un formulario indique "aquí está la información que recopilé"?


¿hay un patrón más estándar para hacer cosas como esta?

No, parece que estás usando el enfoque correcto.

Si el diálogo devuelve DialogResult.OK, suponga que todas las propiedades necesarias en el cuadro de diálogo son válidas.


Para los diálogos de entrada modal, normalmente sobrecargo ShowDialog y paso parámetros para los datos que necesito.

DialogResult ShowDialog(out datetime birthday)

En general, encuentro que es más fácil descubrir y comprender que mezclar mis propiedades con las más de 100 que expone la clase Formulario.

Para formularios, normalmente tengo un controlador y una interfaz IView que usa propiedades de solo lectura para pasar datos.


Para mí, seguir con el diálogo que devuelve las respuestas de diálogo estándar y luego acceder a los resultados a través de propiedades es el camino a seguir.

Dos buenas razones desde donde me siento:

  1. Consistencia: siempre estás haciendo lo mismo con un diálogo y la propia naturaleza de la pregunta sugiere que los patrones son buenos (-: Aunque igualmente la pregunta es si este es un buen patrón?
  2. Permite el retorno de múltiples valores desde el diálogo - ok aquí también hay una discusión completamente nueva, pero el pragmatismo aplicado significa que esto es lo que uno quiere en algunas circunstancias, no siempre es apropiado o deseable empaquetar valores solo para que pueda volver a pasarlos todo de una vez.

El flujo de la lógica también es bueno:

if (Dialog == Ok) { // Do Stuff with the entered values } else { // Respond appropriately to the user cancelling the dialog }

Es una buena pregunta, se supone que debemos cuestionar cosas como esta, pero para mí el patrón actual es decente.

Murph


Siempre lo hice exactamente como lo describes. Tengo curiosidad por ver si hay un enfoque más aceptado.


Yo diría que exponer propiedades en tu diálogo personalizado es la manera idiomática de hacerlo porque así es como lo hacen los diálogos estándar (como Select / OpenFileDialog). Alguien podría argumentar que es más explícito y la intención de revelar que tiene un método ShowBirthdayDialog () que arroja el resultado que está buscando, pero seguir el patrón del marco es probablemente la mejor manera de hacerlo.