Выполнить код при закрытии окна
Я считаю, что можно запустить код, когда кнопка закрытия нажимается в приложении Windows Forms в C#. Это дочерняя форма главного окна. Я хочу сохранить некоторые пользовательские настройки, когда пользователь закрывает окно.
private void fileTypeDialog_FormClosing(Object sender, FormClosingEventArgs e)
{
int ArraySize = fileTypesData.Items.Count;
string[] fileTypesToSaveArray = new string[ArraySize];
for (int i = 0; i < ArraySize; i++)
{
fileTypesToSaveArray[i] = fileTypesData.Items[i].ToString();
}
string fileTypesToSave = String.Join(",", fileTypesToSaveArray);
MessageBox.Show(fileTypesToSave.ToString());
Properties.Settings.Default.fileTypes = fileTypesToSave;
Properties.Settings.Default.Save();
}
Я сделал это, прежде чем я думаю, но я просто не могу вспомнить, как я это сделал. Ребята, вы можете мне помочь?
2 ответа
Ваше мероприятие не подключено. Если вы не создаете событие с помощью дизайнера, вам нужно добавить его вручную, обычно в конструкторе:
public Form1() {
InitializeComponent();
this.FormClosing += fileTypeDialog_FormClosing;
}
Но форма не должна слушать свои собственные события, так как она имеет доступ к своим защищенным методам событий. Так что просто начните вводить "переопределить OnForm" и выберите "OnFormClosing" от intellisense. Ваш блок кода будет выглядеть так:
protected override void OnFormClosing(FormClosingEventArgs e) {
// your code here
base.OnFormClosing(e);
}
При переопределении базового метода всегда включайте базовый вызов, как показано, если только у вас нет особых причин не делать этого.
Попробуйте использовать FormClosed вместо FormClosing, я старался и работал очень хорошо для меня:) Надежда помогла вам:)