Moja aplikacja to WinForms .NET 4 (C#) i jedna z formularzy zamyka się automatycznie po naciśnięciu przycisku.Dziwne: Formularz WinForm jest zamykany automatycznie po naciśnięciu przycisku
- Formularz ma domyślne przyciski Akceptuj i Anuluj, ale nie są one dotykane.
- Istnieje zdarzenie ButtonTestConnection_Click, które po kliknięciu wykonuje swoje zadanie, ale jakoś zamyka formularz.
- Używam myszy, aby kliknąć przycisk, więc nie jest to przypadek kaskadowania naciśnięć klawiszy.
- Nie ustawiam DialogResult w tej funkcji.
Próbowałem również sprawdzić, czy nie zabłąkane.Close/this.Dotose połączeń, ale nie znaleziono.
Oto kod:
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());
}
mam wrażenie, może to mieć coś wspólnego z ustawieniem przycisku, aby nie włączone, co prawdopodobnie przesuwa ostrość. Nie wiem jeszcze. –
Usuń wszystko z obsługi zdarzenia, a następnie zacznij dodawać po jednej linii naraz, aby dowiedzieć się, która linia powoduje problem (zoptymalizuj za pomocą wyszukiwania binarnego). –
Zastępuje metodę OnFormClosing formularza. Ustaw punkt przerwania i spójrz na stos wywołań po trafieniu. Opublikuj go w swoim pytaniu, jeśli nie możesz tego zrozumieć. –