假设我有两种形式。使用名为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();
}
答案 0 :(得分:0)
尝试以下方法:
ProjectName || BigMachineCount || SmallMachineCount
----------------------------------------------------------
Project1 || 1 || 2
Project2 || 1 || 1