Principales respuestas
Formulario invisible al cargar

Pregunta
-
Buenas tardes.
Quiero hacer una aplicacion windows forms en vb net 2008 que simplemente constará de un timer que cada X tiempo haga una consulta a la base de datos para comprobar algo y si se cumple muestre un msgbox. La idea es que la aplicación se arranque y quede trabajando sin que el usuario la vea para que no le moleste, por lo que quiero que el form esté invisible y sólo se vea el msgbox. Para ello tengo esto, pero no funciona:
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.Visible = False
Me.Hide()
Timer1.Interval = 6000
Timer1.Enabled = True
End Sub
Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.Tick
MsgBox("mensaje")
End Sub
End ClassSin embargo, veo el formulario. ¿No hay manera de decirle que esté invisible en el evento load?
Saludos y gracias de antemano!!
miércoles, 2 de junio de 2010 15:23
Respuestas
-
hola
no has evaluado usar un
este componente lo podras encontar en la toolbox del VS
saludos
Leandro Tuttini
Blog
Buenos Aires
Argentina- Marcado como respuesta Rafael FagundesModerator domingo, 6 de junio de 2010 23:39
miércoles, 2 de junio de 2010 15:32
Todas las respuestas
-
hola
no has evaluado usar un
este componente lo podras encontar en la toolbox del VS
saludos
Leandro Tuttini
Blog
Buenos Aires
Argentina- Marcado como respuesta Rafael FagundesModerator domingo, 6 de junio de 2010 23:39
miércoles, 2 de junio de 2010 15:32 -
Hola de nuevo Leandro y gracias por contestar.
Te voy a explicar lo que quiero hacer, porque no estoy muy seguro si me vale lo que me dices del NotifyIcon.
Estoy desarrollando una aplicación que entre otras opciones tiene la de mandar avisos entre los usuarios. La idea es tener un timer que cada 10 minutos compruebe en la base de datos si hay algún aviso nuevo. Aquí ya tengo una duda:
¿relentiza mucho (o algo) tener un timer en la aplicación principal que está ejecutandose? porque mi idea era la de crear una aplicacion independiente con el código que puse arriba y llamarla en el load de la aplicación principal (con un shell). De esta manera, tengo 2 ejecutables corriendo: la aplicación más el timer que comprueba los avisos. ¿Está bien esto? ¿O es darle muchas vueltas? La aplicación principal es para dar de alta artículos, clientes, albaranes, etc... por lo que quisiera que fuera lo mas fluida (rápida) posible...
Y ahora la segunda duda: sea en la aplicación principal o en la aplicacion paralela (tu me dirás, jeje), ¿me sirve el NotifyIcon? Yo simplemente quiero ver un mensaje diciendo "Tienes 1 mensaje": no me interesa ni que se vea el formulario (de ahí que quiera ocultarlo) ni el icono que crea el NotifyIcon al lado del reloj...
Bueno, gracias otra vez!!
miércoles, 2 de junio de 2010 16:15 -
hola
¿relentiza mucho (o algo) tener un timer en la aplicación principal que está ejecutandose?
10 min pareciera ser un timepo razonable, igual depende del proceso que se lance despeus de este tiempo, si este es pesado seguro afectara al performance
De esta manera, tengo 2 ejecutables corriendo: la aplicación más el timer que comprueba los avisos. ¿Está bien esto?
la otra aplicacion el usuario puede cerrarla ? digo porque por ahi podrias ahcer una sola y que el usuario no la cierre sino que cuando lo ahce la mandas al NotifyIcon, al lado del reloj de windows, seria como un minimizar
de esta forma solo necesitas una aplicacion
¿O es darle muchas vueltas?
cuando uno esta en la etapa de diselo simrpe se dan vueltas, la malo seria que despeus de tomado un camino se siga dando vueltas
sea en la aplicación principal o en la aplicacion paralela (tu me dirás, jeje), ¿me sirve el NotifyIcon?
si usas este control podrias tener una sola aplicacion que al cerrar minimizas en el icono pequeño
como veras e uno de los ejemplos podrias mostrar ese mensaje tipo globo que sale del icono para alertar de un nuevo mensaje que entra, queda muy bonito en las aplciaciones y nole molestaria al usuario con un MessageBox que le surge de pronto en la pantalla, cuando esta haciando otras actividades
saludos
Leandro Tuttini
Blog
Buenos Aires
Argentinamiércoles, 2 de junio de 2010 16:35 -
buno si lo que quieres es que tu form se ponga invisible en el momento de cargar te as acercado mucho al código correcto con el que as puesto te explico.
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Timer1.Interval = 1 (en el evento del timer, interval tienes que poner 1)
Timer1.Enabled = TrueMe.Visible = False
Me.Hide()
End Subyo tenia el mismo problema que tu asta que encontré la solución al leer tu comentario, espero que te sirva.
Un saludo
sábado, 26 de junio de 2010 2:01 -
Hola, espero no sea tarde para responder, y si lo es, bueno que quede para otros que tengan tu misma situación.
Para hacerlo en VB.Net debes:
A) En la "Propiedades del proyecto" en el apartado de "Aplicación" debes
1) No tener seleccionada la opción: "Habilitar marco de trabajo de la aplicación"
2) Colocar como objeto inicial: "Sub Main"
B) Crear una clase con el procedimiento "Main", que instancia tu formulario y ejecuta la aplicación.Public Class Class1
Shared Sub Main()
Dim frm1 As Form1
frm1 = New Form1()
Application.Run()
End Sub
End Class
C) Crear un procedimiento constructor en el formulario, el mismo VB te colocara la llamada a InitialiceComponent(), luego de esta línea puedes colocar lo que desees, en este caso el "Enabled" para que comience a ejecutarse el "Timer"Public Sub New()
' Llamada necesaria para el Diseñador de Windows Forms.
InitializeComponent()' Agregue cualquier inicializacion despues de la llamada a InitializeComponent()
Timer1.Enabled = True
End Sub...Y LISTO!!.
- Propuesto como respuesta Pepetrueloide domingo, 5 de septiembre de 2010 2:26
domingo, 5 de septiembre de 2010 0:36