表单打开,但操作完成后崩溃

时间:2019-05-21 22:05:48

标签: c# winforms action

假设我有两种形式。使用名为PantallaEspera的动作(该动作创建了等待屏幕)后,我想打开一个新表单,但是它将打开它,然后崩溃。

如果我删除了Action,它会很好用。这就是我所做的:

加载屏幕:

using System;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace RedBeetle.Forms_bueno
{
    public partial class PantallaEspera : Form
    {
        public Action Proceso { get; set; }

        public PantallaEspera(Action proceso)
        {
            InitializeComponent();
            Proceso = proceso;
        }

        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);
            Task.Factory.StartNew(Proceso).ContinueWith(t => { this.Close(); }, TaskScheduler.FromCurrentSynchronizationContext());
        }
    }
}

我称之为操作的代码:

private void EjecutarBusqueda()
        {
            var listaUsuarios = AccesoDatos.DevolverNombresUsuario();
            var esta = false;

            foreach (string elem in listaUsuarios)
            {
                if (txtBuscar.Text == elem)
                {
                    esta = true;
                }
            }

            if (txtBuscar.Text == "")
            {
                //Si intentas buscar con el campo vacio no haces nada
            }
            else if (esta) //Si el nombre de usuario suministrado por el txtbox existe en la base de datos, procedes
            {   //Si es el enter hace la busqueda
                var perfilUsuario = new PerfilUsuario(txtBuscar.Text, caller);
                perfilUsuario.Show();
            }
        }

        private void BtnBuscar_Click(object sender, EventArgs e)
        {
            using( var pEspera = new PantallaEspera(EjecutarBusqueda))
            {
                pEspera.ShowDialog(this);
            }
            Hide();
        }

为什么崩溃?这是我学习C#的第一年,所以也许我做错了什么。第二种形式就是这样:enter image description here

这是没有操作的情况:enter image description here

1 个答案:

答案 0 :(得分:0)

尝试以下方法:

ProjectName || BigMachineCount       || SmallMachineCount
----------------------------------------------------------
Project1    ||          1            ||        2
Project2    ||          1            ||        1