Mi aplicación es WinForms .NET 4 (C#) y uno de los formularios sigue cerrándose automáticamente después de presionar un botón.Extraño: formulario WinForms se cierra automáticamente después de presionar el botón
- El formulario DOES tiene botones Aceptar y Cancelar predeterminados pero no se tocan.
- Hay un evento ButtonTestConnection_Click que al hacer clic, hace su trabajo pero cierra el formulario de alguna manera.
- Estoy usando el mouse para hacer clic en el botón, por lo que este NO es un caso de pulsaciones de teclas en cascada.
- NO estoy configurando el DialogResult en esta función.
También traté de verificar la ausencia de esto. Cerrar/esto. Eliminar llamadas pero no encontrar ninguna.
Aquí está el código:
private void ButtonTestConnection_Click (object sender, System.EventArgs e)
{
this.Enabled = false;
this.Cursor = System.Windows.Forms.Cursors.WaitCursor;
this.ProgressBar.Minimum = 0;
this.ProgressBar.Maximum = 500;
this.ProgressBar.Value = 0;
this.ProgressBar.Visible = true;
this.ButtonTestConnection.Visible = false;
try
{
while (this.ProgressBar.Value < this.ProgressBar.Maximum)
{
// Some proxy code.
this.ProgressBar.Value++;
}
}
catch
{
}
this.ProgressBar.Visible = false;
this.ButtonTestConnection.Visible = true;
this.ProgressBar.Invalidate();
System.Windows.Forms.Application.DoEvents();
System.Threading.Thread.Sleep(10);
this.Cursor = System.Windows.Forms.Cursors.Default;
this.Enabled = true;
System.Windows.Forms.MessageBox.Show(result.ToString());
}
tengo la sensación de que puede tener algo que ver con el establecimiento en el botón para no habilitado que probablemente cambia el foco. No estoy seguro todavía. –
Elimine todo del controlador de eventos y luego comience a agregar una línea a la vez para descubrir qué línea ocasiona el problema (optimice el uso de la búsqueda binaria) –
Reemplace el método OnFormClosing del formulario. Establezca un punto de interrupción y mire la pila de llamadas cuando llegue. Publique en su pregunta si no puede encontrarle sentido. –