Сворачивание окна программы в панель задач и трей

Здравствуйте. Помогите советом) Недавно начал изучать VB 2010) Так вот... Скажите, какая команда сворачивает программу при нажатия на кнопку? Мне нужны команды, которые сворачивают в панель задач и в трей...Спасибо)
6 ответов

Для того, чтобы свернуть окно вообще на панель задач, устанавливается переменная:
'например, Button1 - сворачивает, а Button2 - разворачивает
 
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
   'свернуть на панель задач
   Me.WindowState = FormWindowState.Minimized 
End Sub
 
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
  'развернуть
   Me.WindowState = FormWindowState.Normal
End Sub
Если нужно при сворачивании окна отобразить значок в трее, то для этого есть элемент NotifyIcon. Ставишь его на свою форму (назовем её frmMain) и пишешь:
Private Sub frmMain_SizeChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.SizeChanged
  NotifyIcon1.Visible = Me.WindowState = FormWindowState.Minimized
End Sub
 
Private Sub ****************************(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles NotifyIcon1.****************
  Me.WindowState = FormWindowState.Normal
  Me.Show()
End Sub
в свойствах NotifyIcon1, конечно устанавливаешь иконку, какая тебе нужна, подсказку, если нужна...такой код, когда сернешь своё окно (форму) отобразит твою иконку в трее. По двойному клику на этой иконке твоя форма развернется


Спасибо)))


Если тебе нужно, чтобы твоя форма не отображалась на панели задач, а только в трее, то устанавливаешь свойство своей формы (frmMain в данном случае) ShowInTaskbar = Fаlse и пишешь так:
Private Sub ****************************(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles NotifyIcon1.****************
  'развернуть (если не развернуто) окно при двойном клике на иконке в трее и перевести на это окно фокус
 
  Me.WindowState = FormWindowState.Normal
  Me.Show() : Me.Activate()
End Sub
 
Private Sub frmMain_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
  'убрать иконку из трея при закрытии твоей формы (иногда в Windows XP остается после закрытия программы)
 
  NotifyIcon1.Dispose()
End Sub


Установив ShowInTaskbar = Fаlse при сворачивании формы она "сожмётся" в маленький прямоугольник над кнопкой ПУСК (иконка+кнопки управления). А как сделать чтобы форма свернулась в значок на трее и ее не видно было ни на панели задач ни в прямоугольничке над кнопкой ПУСК?


jkrnd,
Me.ShowInTaskbar = Fаlse
Me.Visible = False
и отобразить значок в трее


Me.ShowInTaskbar = Fаlse
Me.Visible = False
куда код вставлять? Ещё раз вопрос: обычная форма Sizable. Развёрнута на экране. В SysTray есть её значок, на панели задач от формы никаких следов нет. Нажимаем на кнопку "свернуть" в заголовке окна. при ShowInTaskbar = Fаlse над кнопкой ПУСК "прямоугольничек" свёрнутого окна.Немного уточню вопрос. Ставим на форму Button в Button_Click вставляем
Me.Visible = False
тогда всё работает как я хочу. Какое событие формы происходит по клику на значке "свернуть" в заголовке окна?Ответ найден:
   Private Sub frmGrfEdit_Resize(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Resize
        If Me.WindowState = FormWindowState.Maximized Then
            'MessageBox.Show("Maximize")
        ElseIf Me.WindowState = FormWindowState.Minimized Then
            'MessageBox.Show("Minimize")
            Me.Visible = False
        Else
            'MessageBox.Show("Other")
        End If
    End Sub