窗口关闭时运行代码

时间:2014-09-28 16:26:32

标签: c# winforms settings

我相信在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();
    }

在我想之前我已经这样做了,但我根本不记得我是怎么做到的。你能帮助我吗?

2 个答案:

答案 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,我尝试并为我工作得很好:)希望帮助你:)