我相信在C#中的Windows窗体应用程序中按下关闭按钮时可以运行代码。它是主窗口的儿童形式。我想在用户关闭窗口时保存一些用户设置。
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();
}
在我想之前我已经这样做了,但我根本不记得我是怎么做到的。你能帮助我吗?
答案 0 :(得分:2)
您的活动未接通电话。如果您不使用设计器创建事件,则需要手动添加它,通常在构造函数中添加:
public Form1() {
InitializeComponent();
this.FormClosing += fileTypeDialog_FormClosing;
}
但是表单不应该监听自己的事件,因为它可以访问受保护的事件方法。因此,只需开始键入“覆盖OnForm”并从intellisense中选择“OnFormClosing”。您的代码块如下所示:
protected override void OnFormClosing(FormClosingEventArgs e) {
// your code here
base.OnFormClosing(e);
}
覆盖基本方法时,除非您有特殊原因,否则请始终包含基本调用。
答案 1 :(得分:-1)
尝试使用FormClosed而不是FormClosing,我尝试并为我工作得很好:)希望帮助你:)