| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Разработка Windows Forms > Обработка событий от кнопок "закрыть" |
| Автор: Sov87 8.4.2008, 10:09 |
| проблемы следующая: надо свернуть прогу в системный трэй. пошарился по мсдн, но наверное как-то о коряво это делал и ничего не нашел. помогите, пожалуйста!!! |
| Автор: Kefir 8.4.2008, 10:27 |
| http://www.developer.com/net/csharp/article.php/3336751 здесь подробно расписано как убрать прогу в трей. вкратце - использовать контрол NotifyIcon. |
| Автор: mr.DUDA 8.4.2008, 10:29 | ||
| Пример, на форме есть чекбокс "Сворачивать в трей", если стоит галка то форма вместо закрытия сворачивается в трей и разворачивается обратно по клику по иконке в трее: 1. кидаем на форму чекбокс 2. кидаем на форму компонент NotifyIcon с тулбокса, в свойствах компонента ставим Visible=false, выбираем иконку в свойстве Icon 3. подписываемся на событие MouseClick у notifyIcon1 4. пишем код в форме:
|
| Автор: DrunkProgrammer 9.4.2008, 19:48 |
| У меня тут вопрос в связи с использованием событий возник: в чем разница между protected override void OnClosing(CancelEventArgs e) и private void Form1_FormClosing(object sender, FormClosingEventArgs e) Единственная разница, которую я вижу, заключается в том, что OnClosing срабатывает раньше и параметр типа FormClosingEventArg передает причину закрытия формы. Объясните пожалуйста, а то никак въехать не могу. |
| Автор: vponomarov 9.4.2008, 21:06 |
| DrunkProgrammer, когда ты делаешь protected override void OnClosing(CancelEventArgs e) ты переопределяешьметод класса в данном случае действия формы когда ее пытаются закрыть. когда ты используешь private void Form1_FormClosing(object sender, FormClosingEventArgs e) ты добавляшьк действиям при закрытии формы действия описанные в методе Form1_FormClosing. я понятно изложил свои мысли? |
| Автор: DrunkProgrammer 10.4.2008, 04:59 |
| Так есть ли разница в использовании OnClosing или FormClosing, т.е. в каких ситуациях может понадобиться использование именно OnClosing или наоборот? |
| Автор: mr.DUDA 10.4.2008, 09:46 |
| Методы OnXYZ помимо всего прочего генерируют одноимённое событие XYZ, так что можно к примеру перекрыть OnXYZ и не вызвать base.OnXYZ - тогда событие не сгенерируется. Такое "дублирование кода" введено потому что метод можно сделать виртуальным и изменить поведение в классах наследниках, а событие - нет. |
| Автор: DrunkProgrammer 10.4.2008, 09:52 |
| Примерно понятно. Спасибо! |