Метод Form1_FormClosing «никогда не используется», настройки не сохраняются - PullRequest
0 голосов
/ 19 декабря 2011

Я сохраняю местоположение моего приложения, но оно не хочет сохранять значение. Теперь в коде происходит то, что _FormClosing затемнено и «оно никогда не используется». Есть кто-нибудь, кто может видеть, где я ошибаюсь с этим кодом ниже?

public Form1()
    {
        InitializeComponent();            
    }

    private void Form1_Load(object sender, EventArgs e)
    {
        if (Settings.Default.WindowLocation != null)
            this.Location = Settings.Default.WindowLocation;

        this.txtInput60.KeyPress += new System.Windows.Forms.KeyPressEventHandler(CheckEnterKeyPress);
    }

    private void Form1_FormClosing(object sender, FormClosedEventArgs e)
    {
        Settings.Default.WindowLocation = this.Location;
        Settings.Default.Save();
    }

    private void CheckEnterKeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
    {
        if (e.KeyChar == (char)Keys.Return)
        {
            decimal minutes;
            decimal.TryParse(txtInput60.Text, out minutes);

            if (minutes > 0)
            {
                var total = (int) (minutes/60*100);
                txtOutput100.Text = total.ToString();
                Clipboard.SetText(total.ToString());
            }
        }
    }

В свойствах моего приложения я устанавливаю WindowLocation с WindowLocation, system.draw.point, user, 0; 0

Ответы [ 4 ]

1 голос
/ 19 декабря 2011

Вам необходимо прикрепить событие FormClosing к методу Form1_FormClosing.

Это можно сделать в коде метода Form_Load:

this.FormClosing += Form1_FormClosing;

Или установив событие в конструкторе

Измените тип параметра метода с FormClosedEventArgs на FormClosingEventArgs:

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
    Settings.Default.WindowLocation = this.Location;
    Settings.Default.Save();
}
1 голос
/ 19 декабря 2011

Похоже, ваше событие Form1_FormClosing больше не связано с событием FormClosing формы. Вы можете проверить это, перейдя к свойствам формы во время разработки и выбрав панель событий, выглядит следующим образом:

Properties Pane

Убедитесь, что ваш метод Form1_Closing подключен к событию FormClosing, если нет, то выпадающий список и выберите его.

0 голосов
/ 19 декабря 2011

Ваш дизайнер, вероятно, не присоединяется к событию FormClosed, попробуйте добавить его в конструктор сразу после InitializeComponent();

this.FormClosing += Form1_FormClosing;
0 голосов
/ 19 декабря 2011

Проверка в Form1 в Designer.Откройте EventExplorer формы Form1 и проверьте значение для события закрытия.Возможно, это не связано с вашим методом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...