Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 | 2 | 3 |

 

  Вопрос: Ну что не кто не знает??? Добавлено: 19.08.09 22:23  

Автор вопроса:  Not андерстен
Ребят, помогите.Хочу чтобы при сворачивании формы она попадала в трей, и не могу воткнуть какое нужно объявление для формы, если делаю Resize то реагирует только на изменение "развернуть и восстановить", а на сворачивание че то тупит, или имхо чето не то делаю. подскажите. И как вообще сделать чтобы до тех пор пока не нажму "свернуть" иконка формы не появлялась в трее??

вот код для формы:

Private Sub fclsViewer_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Resize
        Me.Hide()
        NotifyIcon1.Visible = True

    End Sub

а вот для контрола Notifycon1:

Private Sub NotifyIcon1_MouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles NotifyIcon1.MouseClick
        Me.Visible = True
        NotifyIcon1.Visible = False
    End Sub

Ответить

  Ответы Всего ответов: 31  

Номер ответа: 1
Автор ответа:
 Илья



Вопросов: 1
Ответов: 48
 Профиль | | #1 Добавлено: 19.08.09 22:33
Для определения текущего статуса окна используй свойство WindowState у формы

Ответить

Номер ответа: 2
Автор ответа:
 Not андерстен



Вопросов: 22
Ответов: 33
 Профиль | | #2 Добавлено: 19.08.09 22:56
Оо, это не то ведь. это свойство для того чтобы при загрузке форма появлялась либо развернутой, свернутой на панель задач, либо в том состоянии в котором ты его разработал! чето я уже мозг сломал, не могу понять какой код нужен и наверно какое объявление для формы

Ответить

Номер ответа: 3
Автор ответа:
 Дмитрий Юпатов



Вопросов: 4
Ответов: 457
 Web-сайт: cargomaster.at.ua/
 Профиль | | #3
Добавлено: 19.08.09 23:20
сергей,нет, оно содержит значение текущего состояния окна. Седня уже некогда, а завтра выложу тебе пример, что тебе надо. ОК?

Ответить

Номер ответа: 4
Автор ответа:
 Not андерстен



Вопросов: 22
Ответов: 33
 Профиль | | #4 Добавлено: 19.08.09 23:28
ок. спасиб большой, буду ждать:) тока с моим примером если можно, а то я долго вкуриваю

Ответить

Номер ответа: 5
Автор ответа:
 Not андерстен



Вопросов: 22
Ответов: 33
 Профиль | | #5 Добавлено: 19.08.09 23:30
"с моим примером" - тоесть чтобы вот так:Private Sub fclsViewer_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Resize
и вот так:Private Sub NotifyIcon1_MouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles NotifyIcon1.MouseClick
 ну думаю понятно.

Ответить

Номер ответа: 6
Автор ответа:
 Not андерстен



Вопросов: 22
Ответов: 33
 Профиль | | #6 Добавлено: 19.08.09 23:36
И как сделать, чтобы до тех пор пока не нажму "свернуть" иконка формы не появлялась в трее??
если можно объясни

Ответить

Номер ответа: 7
Автор ответа:
 Not андерстен



Вопросов: 22
Ответов: 33
 Профиль | | #7 Добавлено: 19.08.09 23:52
и еще! когда я свернул форму в трей, и кликаю по иконке в трее - то форма возвращалась в том же состоянии в котором была, тоесть развернутой либо нормальной либо восстановленой

Ответить

Номер ответа: 8
Автор ответа:
 Дмитрий Юпатов



Вопросов: 4
Ответов: 457
 Web-сайт: cargomaster.at.ua/
 Профиль | | #8
Добавлено: 20.08.09 00:55
Вот накропал:
Итак, имеем пустую форму. Элемент NotifyIcon на нее класть не надо! Он в рантайме отрисуется.
  1. Dim State As Integer ' тут мы будем хранить инфу о состоянии формы.
  2.     Dim WithEvents NotifyIcon1 As New System.Windows.Forms.NotifyIcon ' создаем элемент NotifyIcon программно. Можно его и в конструкторе на форму бросить, тогда это объявление надо удалить или закомментить.
  3.  
  4.     Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
  5.         'настраиваем свойства иконки в трее
  6.         With Me.NotifyIcon1
  7.             .Icon = Me.Icon
  8.             .Text = Me.Text
  9.         End With
  10.         'Me.WindowState = FormWindowState.Minimized 'если эту строку раскомментить, форма загрузится в свернутом состоянии (не показываясь в панели задач) и отобразится иконка в трее.
  11.  
  12.         'Важное замечание: не советую делать свойство формы WindowsState=Minimized в конструкторе для того чтоб она грузилась в свернутом состоянии.
  13.     End Sub
  14.  
  15.     Private Sub NotifyIcon1_MouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles NotifyIcon1.MouseClick
  16.         ' проверяем нажатую кнопку мыши
  17.         If e.Button = Windows.Forms.MouseButtons.Left Then
  18.             'левым кликом мы возвращаем форму к жизни :)
  19.             Me.WindowState = Me.State
  20.         ElseIf e.Button = Windows.Forms.MouseButtons.Right Then
  21.             'правым кликом - показываем баллон
  22.             Me.NotifyIcon1.ShowBalloonTip(500, "Мыша", "Жмакнули правую кнопку!", ToolTipIcon.Info)
  23.         ElseIf e.Button = Windows.Forms.MouseButtons.Middle Then
  24.             Me.NotifyIcon1.ShowBalloonTip(500, "Мыша", "Жмакнули среднюю кнопку!", ToolTipIcon.Info)
  25.         End If
  26.     End Sub
  27.  
  28.     Private Sub Form1_Resize(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Resize
  29.         If Me.WindowState = FormWindowState.Minimized Then
  30.             Me.ShowInTaskbar = False ' убираем форму из панели задач
  31.             Me.NotifyIcon1.Visible = True ' отображаем иконку в трее
  32.         Else
  33.             Me.State = Me.WindowState
  34.             Me.ShowInTaskbar = True ' ну и наоборот...
  35.             Me.NotifyIcon1.Visible = False
  36.         End If
  37.         'при ресайзе мы в переменной State меняем значение только в том случае, если форма не минимизировалась! Иначе хер ее потом развернешь... Таким образом значение там бывает либо 2 - развернута во весь экран, либо 0 - нормальное положение. Кстати, размещение формы на экране нам специально запоминать и не надо - форма из состояния максимум или свернуто возвращается к нормальному в старом расположении.
  38.     End Sub
  39.     'Итак, подводим итоги: если форма развернута во весь экран или уменьшена в нормальное состояние, то она отображается в панели задач и иконки в трее нет. Если форма свернута, то она НЕ отображается в панели задач, но появляется иконка в трее.

Ответить

Номер ответа: 9
Автор ответа:
 Дмитрий Юпатов



Вопросов: 4
Ответов: 457
 Web-сайт: cargomaster.at.ua/
 Профиль | | #9
Добавлено: 20.08.09 00:57
Код дополнительно в цитату спрятал, шоб **аные смайлы не вылезли :)

Ответить

Номер ответа: 10
Автор ответа:
 VβÐUηìt



Вопросов: 246
Ответов: 3333
 Web-сайт: смекаешь.рф
 Профиль | | #10
Добавлено: 20.08.09 09:58
Можно и без цитаты - Source хватит вполне.

Ответить

Номер ответа: 11
Автор ответа:
 VβÐUηìt



Вопросов: 246
Ответов: 3333
 Web-сайт: смекаешь.рф
 Профиль | | #11
Добавлено: 20.08.09 09:58
Смотрите, прям стихотворенье...

Ответить

Номер ответа: 12
Автор ответа:
 Not андерстен



Вопросов: 22
Ответов: 33
 Профиль | | #12 Добавлено: 20.08.09 13:25
спасиб бошой. буду разбирать и пробовать:)))

Ответить

Номер ответа: 13
Автор ответа:
 Дмитрий Юпатов



Вопросов: 4
Ответов: 457
 Web-сайт: cargomaster.at.ua/
 Профиль | | #13
Добавлено: 20.08.09 13:29
 VβÐ Uηit пишет:
Можно и без цитаты - Source хватит вполне. Щас проверим:
  1. Private Sub NotifyIcon1_MouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles NotifyIcon1.MouseClick
Номер ответа: 14
Автор ответа:
 Дмитрий Юпатов



Вопросов: 4
Ответов: 457
 Web-сайт: cargomaster.at.ua/
 Профиль | | #14
Добавлено: 20.08.09 13:30
сергей пишет:
буду разбирать и пробовать

че там разбирать-то...
А Source и правда хватило :)

Ответить

Номер ответа: 15
Автор ответа:
 Not андерстен



Вопросов: 22
Ответов: 33
 Профиль | | #15 Добавлено: 20.08.09 15:38
ну как что, код! я хреново ловлю смысл, я тока начал постигать камень этот. А код работает, спс бош) тока я его под свою хрень подделываю, вот и написал "разбирать"

Ответить

Страница: 1 | 2 | 3 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам