Visual Basic.NET - Comportamiento del formulario

 
Vista:

Comportamiento del formulario

Publicado por Alonso (3 intervenciones) el 10/09/2016 12:14:15
Hola, estoy haciendo una pequeña aplicación para el área de notificación (system tray) y quería reproducir el comportamiento de la ventana emergente de la configuración de red de windows 7 en el área de notificación, es decir que cuando le de clic esta se muestre y al dar otro este se cierre, y que cuando pierda el foco, se oculte automáticamente.

Si le dais al icono de red de windows en el área de notificación sabréis lo que quiero hacer.

Muchas gracias por cualquier ayuda u orientación.


Saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 481
Bronce
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Comportamiento del formulario

Publicado por Miguel (476 intervenciones) el 10/09/2016 20:25:21
Hola,
Quizá te sirva el componente 'NotifyIcon'.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Comportamiento del formulario

Publicado por Alonso (3 intervenciones) el 12/09/2016 12:23:26
Bueno, para que sea más fácil de entender lo que quiero hacer dejo el código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
Public Class MainF
 
    Private Sub MainF_Activated(sender As Object, e As EventArgs) Handles Me.Activated
        Me.Focus()
    End Sub
 
    Private Sub MainF_Deactivate(sender As Object, e As EventArgs) Handles Me.Deactivate
        Me.Visible = False
 
    End Sub
 
    Private Sub MainF_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Try
 
            Dim x As Integer
            Dim y As Integer
            x = Screen.PrimaryScreen.WorkingArea.Width - 350
            y = Screen.PrimaryScreen.WorkingArea.Height - 800
            Me.Location = New Point(x, y)
 
        Catch ex As Exception
 
            MsgBox(ex.Message & " La aplicación se cerrará", MsgBoxStyle.Critical, "Error")
 
            End
 
        End Try
    End Sub
 
    Private Sub NotifyIcon1_MouseClick(sender As Object, e As MouseEventArgs) Handles NotifyIcon1.MouseClick
        If e.Button = Windows.Forms.MouseButtons.Right Then
 
        ElseIf e.Button = Windows.Forms.MouseButtons.Left Then
            If Me.Visible = True Then
 
                Me.Visible = False
 
                Me.Activate()
            Else
                If Not Me.Focus = True Then
 
                    Me.Visible = True
 
                    Me.Activate()
                End If
 
            End If
 
        End If
    End Sub
 
    Private Sub NotifyIcon1_MouseDoubleClick(sender As Object, e As MouseEventArgs) Handles NotifyIcon1.MouseDoubleClick
        If e.Button = Windows.Forms.MouseButtons.Right Then
 
        ElseIf e.Button = Windows.Forms.MouseButtons.Left Then
            If Me.Visible = True Then
 
 
                Me.Activate()
                Me.Visible = False
                Me.Focus()
            Else
 
                Me.Activate()
                Me.Visible = True
                Me.Focus()
 
 
            End If
 
        End If
    End Sub
 
 
    Private Sub MainF_Shown(sender As Object, e As EventArgs) Handles Me.Shown
        Me.Visible = False
 
    End Sub
 
 
End Class


Lo que quiero decir, es que al perder el formulario el foco este no se cierra. Creo que el problema está al hacerlo no visible en la declaración "deactivate".

¿Alguna orientación?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Comportamiento del formulario

Publicado por Alonso (3 intervenciones) el 12/09/2016 13:02:16
Perdon, el error lo tengo cuando añado a Form_Deactivate "me.visible = false", es decir, cuando le doy click o doble click, no se oculta el formulario, pierde el foco pero se queda en el "fondo" del escritorio pero no se oculta.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Comportamiento del formulario

Publicado por Nacho (56 intervenciones) el 13/09/2016 10:37:52
¿Y si pasas una ventana por encima se borra?

Un me.Visible = false lo que quiere decir es que la próxima vez que tenga que pintar el Windows ese me no pinte nada, pues no tiene que verse. No significa que el Windows tenga que repintar la zona de pantalla donde esté ese me, eso corre de tu cuenta.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar