У меня странная проблема с WinForm, которая, похоже, отказывается закрываться по какой-то странной причине.У меня очень простой графический интерфейс, который иногда не реагирует на нажатия клавиш X или когда я использую события на кнопках, он даже достигает Close()
и ничего не делает ..
private void buttonZapisz_Click(object sender, EventArgs e) {
string plik = textBoxDokumentDoZaladowania.Text;
if (File.Exists(plik)) {
string extension = Path.GetExtension(plik);
string nazwaPliku = Path.GetFileName(plik);
SqlMethods.databaseFilePut(plik, comboBoxTypDokumentu.Text, textBoxKomentarz.Text, sKlienciID, sPortfelID, extension, nazwaPliku);
Close();
}
}
Нет событий, назначенных наFormClosed
или FormClosing
.Так как я могу узнать, что не так.Иногда X будет работать после загрузки графического интерфейса, но после того, как я нажму Button
, чтобы сохранить некоторые данные в базу данных, он достигает Close () в этом событии кнопки, и он все еще виден и ничего не делает.Не могу использовать X, ни ALT + F4.Я могу обойти GUI и выбрать другие значения для ComboBox
без проблем.
Я называю GUI так:
private void contextMenuDokumentyDodaj_Click(object sender, EventArgs e) {
var lv = (ListView) contextMenuDokumenty.SourceControl;
string varPortfelID = Locale.ustalDaneListViewKolumny(listViewNumeryUmow, 0);
string varKlienciID = Locale.ustalDaneListViewKolumny(listViewKlienci, 0);
if (lv == listViewDokumentyPerKlient) {
if (varKlienciID != "") {
var dokumenty = new DocumentsGui(varKlienciID);
dokumenty.Show();
dokumenty.FormClosed += varDocumentsGuiKlienci_FormClosed;
}
} else if (lv == listViewDokumentyPerPortfel) {
if (varPortfelID != "" && varKlienciID != "") {
var dokumenty = new DocumentsGui(varKlienciID, varPortfelID);
dokumenty.Show();
dokumenty.FormClosed += varDocumentsGuiPortfele_FormClosed;
}
}
}
Хотя я не могу закрыть GUI, я могу без проблем работать с основным графическим интерфейсом.Я могу открыть тот же графический интерфейс и после открытия нового графического интерфейса я могу быстро закрыть его.Графический интерфейс очень прост с несколькими ComboBoxes
, TextBoxes
и одним EditButton
от Devexpress.
Edit: varDocumentsGuiPortfele_FormClosed код позволяет мне обновлять GUI (перезагрузить ListView в зависимости от того, где пользовательсейчас).
private void varDocumentsGuiPortfele_FormClosed(object sender, FormClosedEventArgs e) {
TabControl varTabControl = tabControlKlientPortfele;
if (varTabControl.TabPages.IndexOf(tabPageDokumentyPerKlient) == varTabControl.SelectedIndex) {
loadTabControlKlientPortfeleBezZmianyUmowy();
}
}