Buenas,
Estoy haciendo una aplicacion de registro de inasistencia de personal y me surgió el problema que necesito indicarle a un formulario, en donde se lista cierta entidad, el siguiente formulario que se debe abrir despues de haberla sido elegida.
Mi duda es, mas que nada, de implementación ya que tengo idea de como aplicarla.
Tengo la posibilidad de usar un enumerado para indicar que el siguiente formulario o pasar el tipo de formulario o la instancia del formulario por constructor. Capaz exista otra manera mas elegante de hacerlo pero la desconozco.
Para orientarlos un poco mas, flujo de trabajo seria el siguiente:
frmPrincipal.cs:
Es la pantalla principal para arrancar y tiene esta 2 opciones.
private void tsmiDatosPersonal_Click(object sender, EventArgs e)
{
frmPersonalListado frm = new frmPersonalListado();
frm.ShowDialog(this);
}
private void tsmiInasistenciasPersonal_Click(object sender, EventArgs e)
{
frmPersonalListado frm = new frmPersonalListado();
frm.ShowDialog(this);
}
frmPersonalListado.cs
Es donde se listan el personal del establecimiento y luego selecciono uno de la lista y abre el siguiente formulario.
public frmPersonalListado()
{
InitializeComponent();
_personalNegocio = new PersonalNegocio();
_inasistenciaNegocio = new Lazy<InasistenciaNegocio>();
}
public frmPersonalListado(Form formularioObjetivo)
: this()
{
_formularioObjetivo = formularioObjetivo;
}
private void tsbVerPersonal_Click(object sender, EventArgs e)
{
Aplicacion.Entidades.Personal personalSeleccionado = lvPersonal.SelectedItems[0].Tag as Aplicacion.Entidades.Personal;
frmPersonalCRUD frm = new frmPersonalCRUD(ModoFormulario.Ver, personalSeleccionado); // <<< Aca deberia instanciar el formulario correcto elegido desde el menú.
frm.ShowDialog(this);
}
Si necesitan revisar el código fuente, les dejo el repositorio en github: Repositorio
Van a poder encontrar los formularios en la carpeta EscuelaSimple.
ACTUALIZACIÓN:
Modifique el la pregunta con el código de interés. Mi duda mas que nada es si hay alguna manera de hacerle saber al formulario que llamo, que formulario tiene que instanciar una vez que selecciono un ítem de la lista.