Страница: 1 |
Вопрос: Сворачивать в трей при нажатии на крестик | Добавлено: 14.03.10 20:54 |
Автор вопроса: ![]() |
Подскажите как сделать (или где найти) чтоб при закрытии формы на "крестик" она сворачивалась в трей, а при клике по иконке в трее разворачивалась (закрытие будет по кнопке в меню)
vb.net(2008) |
Ответы | Всего ответов: 10 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 80 Ответов: 476 |
Профиль | Цитата | #1 | Добавлено: 15.03.10 07:40 |
Всё просто:
На событие Form.Closed()(или Form.Closing, я не помню, а проверять счас времени нету) ставиш появление контрола (NotifyIcon1.Visible = True) (предварительно добавив его на форму ,и установив это свойство в False). |
Номер ответа: 2 Автор ответа: ![]() ![]() Вопросов: 4 Ответов: 14 |
Профиль | Цитата | #2 | Добавлено: 15.03.10 20:51 |
Спасибо, получилось! (по Closing).
Все окзалось не так сложно, даже контекстное меню к иконке сделал чисто интуитивно. Подскажите, как отследить что по иконке щелкнули левой кнопкой, а не правой? Дело в том что при щелчке правой кнопкой по иконке надо чтоб открывалось контекстное меню, а по щелчку левой менялось свойство видимости формы. Контекстное меню привязалось к правой кнопке само, но если поставить изменение видимости на событие "клик", то видимость меняется и при вызове контекстного меню правой кнопкой.... |
Номер ответа: 3 Автор ответа: ![]() ![]() Вопросов: 26 Ответов: 110 |
Web-сайт: Профиль | Цитата | #3 | Добавлено: 15.03.10 21:22 |
По-моему, в процедуре Mouse_Down можно определить, какая кнопка нажата.
Правда, это точно работает в VB 6.0, но в Visual Studio я этим не пользовался, поэтому там могут быть другие переменные и значения. |
Номер ответа: 4 Автор ответа: ![]() ![]() Вопросов: 4 Ответов: 14 |
Профиль | Цитата | #4 | Добавлено: 15.03.10 21:47 |
Да, про мышь так и есть ), благодарю.
Код, если кому интересно: If Button.MouseButtons = Windows.Forms.MouseButtons.None Then Me.Visible = Not Me.Visible Странно что пришлось поставить Windows.Forms.MouseButtons.None, а не Windows.Forms.MouseButtons.Left... странно потому что если ставить right или middle, то на правую кнопку и на среднюю все работает, а на левую нет, методом тыка заработало на none. |
Номер ответа: 5 Автор ответа: ![]() ![]() Вопросов: 4 Ответов: 14 |
Профиль | Цитата | #5 | Добавлено: 15.03.10 22:09 |
Рано обрадовался с Closing, при нажатии на крестик все равно форма закрывается, надо же еще кроме отображения иконки добавить код отмены закрытия?.... Как сделать чтоб не закрывалась программа?
И еще подскажите событие при сворачивании и разворачивании формы (черточка и квадратик рядом с крестиком). |
Номер ответа: 6 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 80 Ответов: 476 |
Профиль | Цитата | #6 | Добавлено: 15.03.10 23:40 |
По идее
Private Sub Form1_MaximumSizeChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.MaximumSizeChanged End Sub Private Sub Form1_MinimumSizeChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.MinimumSizeChanged но я не пробовал |
Номер ответа: 7 Автор ответа: ![]() ![]() Вопросов: 26 Ответов: 110 |
Web-сайт: Профиль | Цитата | #7 | Добавлено: 16.03.10 22:02 |
Напишите вместо
Это скроет Вашу форму. Для её отбражения надо написать:
Но при полном закрытии программы надо выгрузить и эту форму. Проще написать:
(это надо написать в процедуре выгрузки последней формы). |
Номер ответа: 8 Автор ответа: ![]() ![]() Вопросов: 26 Ответов: 110 |
Web-сайт: Профиль | Цитата | #8 | Добавлено: 16.03.10 22:07 |
UnDeAdZak: Всё правильно. В Visual Studio 2008 есть и
, и
|
Номер ответа: 9 Автор ответа: ![]() ![]() Вопросов: 4 Ответов: 14 |
Профиль | Цитата | #9 | Добавлено: 17.03.10 08:16 |
Ilya
Я это и написал. Но что толку делать Form.Visible = False в событии Form.Closing если сразу после того как форма скрывается она же и выгружается? а чтоб она не выгружалась надо оказывается перед Visible = False написать e.Cancel = True. И если кто будет этим пользоваться надо ввести логическую переменную и по ней устанавливать e.Cancel = True иначе форма никогда не выгрузится (никогда не произойдет событие Form.Closing). |
Номер ответа: 10 Автор ответа: ![]() ![]() Вопросов: 26 Ответов: 110 |
Web-сайт: Профиль | Цитата | #10 | Добавлено: 17.03.10 21:13 |
Я сейчас копался в кодах и нашёл вот что:
Правда, это код нажатия кнопки, но всё же его можно вставить в FormClosing. При этом, действительно, надо написать:
|
Страница: 1 |
|