@TechNOIR

C#. Как переназначить кнопку закрытия программы(крестик в углу)?

Добрый день.
Подскажите пожалуйста как переназначить кнопку закрытия программы(крестик в углу)?
Хочу повесить на нее другое действие.

Спасибо заранее!
  • Вопрос задан
  • 4995 просмотров
Решения вопроса 2
@BashkaMen
C# программист
к посту mindtester добавлю

Есть вариант проще, подпишись на событие OnClosing
в нем делаешь все действия при нажатии той кнопки и нужно отменить само закрытие
e.Cancel = true
Вроде так, я уже точно не помню :)
Ответ написан
@TechNOIR Автор вопроса
Подписываемся на событие:
this.FormClosing += MainForm_Closing;

Выполняем действия:
private void MainForm_Closing(object sender, System.ComponentModel.CancelEventArgs e)
    	{
        e.Cancel = true; // кнопка больше не закрывает форму
  		// а тут теперь указываем что она делает    
    	}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
mindtester
@mindtester Куратор тега C#
http://iczin.su/hexagram_48
копать в сторону user32.dll (вечером с усталости.. ни че внятного пока больше не скажу)

ps

придется осмыслить что такое win32 api, хендл окна, атрибут [DllImport("USER32.DLL")] .. и кучу всяких попутных нюансов.. удачи..

ps я очевидно отрефлексировал по своему старому опыту ))
.. на слова "переопределение" и крестик - убрать заголовок окна, переопределить содержимое меню окна, убрать крестик .. вот о чем подумал
.. а OnClosing главной формы.. не то что бы я не знал, просто всегда использовал для действий перед закрытием программы..
.. я уже успел сообразить типовой сценарий - сворачивание в трей, и с треем был опыт, просто я выбрал стратегию писать легковестный агент для трея, и отменять закрытие не было в моей практике, то есть снова не замкнуло )))
.. ну и сделайте скидку на возраст )).. мне 52.. и уже с половиной )) .. тем не менее - я кодирую, при чем все еще, не редко, за деньги ;)))

pps тем не менее - коллеги дали верный ответ... и я тоже возьму в копилку... альтернатива "леговестному агенту в трее" - свернутое и скрытое приложение, не требует времени для реактивации... в зависимости от задачи, это может быть верным решением
.. но если надо экономить память, а главная форма легкая - то легковестный, автономный трей-агент может быть и лучше

всем спасибо! всем удачи! ))
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы