es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

C# Continuar a la Siguiente Función Sin Cerrar el Formulario de Windows Actual

¿Hay alguna forma en la que pueda continuar hacia la siguiente función a continuación (dentro de la misma clase de función) sin cerrar el actual m_frmLotEntry?

void ShowLotEntry()
    {            
        DialogResult _dlgRet = DialogResult.None;
        _dlgRet = m_frmLotEntry.ShowDialog(this);

        // Siguiente función aquí
    }

Actualizaciones:
He logrado continuar con el código cambiando el código de la siguiente manera.

void ShowLotEntry()
    {            
        DialogResult _dlgRet = DialogResult.None;
        BeginInvoke(new System.Action(() => m_frmLotEntry.ShowDialog()));

        // Siguiente función aquí
    }

Los programas ahora continúan con el siguiente paso. Sin embargo, tengo otro problema que es que la siguiente siguiente función requiere algunos datos ingresados por el usuario en el formulario anterior. ¿Hay alguna forma posible de detenerse a mitad del siguiente proceso?

void ShowLotEntry()
    {            
        DialogResult _dlgRet = DialogResult.None;
        BeginInvoke(new System.Action(() => m_frmLotEntry.ShowDialog()));

        // Proceder con esta función aquí.

        // Detenerse antes de la siguiente función.
        if (_dlgRet == DialogResult.OK)
        {
            // Algunos códigos aquí
            
        }

Gracias.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Sí, para detener a mitad del siguiente proceso, puedes usar la instrucción “return” para salir de la función actual y evitar que la siguiente función se ejecute. Por ejemplo:

      void MostrarEntradaLote()
        {            
            DialogResult _dlgRet = DialogResult.None;
            BeginInvoke(new System.Action(() => m_frmLotEntry.ShowDialog()));
    
            // Procedemos con esta función aquí.
            if(_dlgRet == DialogResult.Cancel) // Verificar si el usuario hizo clic en el botón "Cancelar"
            {
                return; // Salir de la función y evitar que se ejecute la próxima función
            }
    
            // Continuamos con la próxima función aquí.
            if (_dlgRet == DialogResult.OK)
            {
                // Aquí van algunos códigos
            }
            // Aquí van más códigos si es necesario
        }
    

    Al utilizar la instrucción “return”, la función saldrá inmediatamente si el usuario hizo clic en el botón “Cancelar” en el formulario “m_frmLotEntry”, y la siguiente función no se ejecutará. De lo contrario, la función continuará con la próxima función y realizará sus respectivas acciones.

Comments are closed.