Problema con icono de la bandeja del sistema (NotifyIcon)

19/02/2004 - 19:31 por Kasiyas | Informe spam
Hola a todos,

Tengo un pequeño problema con una aplicación en c# a la hora de minimizarla
en un icono de notificación en la bandeja del sistema.
El caso es que cuando he maximizado la ventana de la aplicación (Form1) y a
continuación la minimizo para ocultarla de forma que quede solo el icono de
notificación, cuando la vuelvo a restaurar haciendo doble click sobre dicho
icono de notificación, se vuelve a restaurar maximizada (hasta aqui todo
bien), pero si intento devolverla al tamaño normal (pulsando otra vez el
controlbox de Maximizar/Restaurar de la barra de titulo de la ventana Form1)
el tamaño de la misma se ve reducido a la barra de título. Y por más que
maximize y restaure, siempre se queda de ese tamaño. Vamos que no hay forma
de dejarla en el estado normal (original), y siempre pasa despues de
haberla: 1º maximizado, 2º minimizado y dejado como icono de notificación,
3º restaurado haciendo doble click en el icono de notificación y 4º intentar
devolverla al tamaño normal.
Espero haberme explicado lo suficientemente claro. El codigo con las
funciones implicadas lo he puesto a continuación.

Muchas gracias de antemano.



private void notifyIcon1_DoubleClick(object sender, System.EventArgs e)
{
Show();
WindowState = FormWindowState.Normal;
Activate();
this.notifyIcon1.Visible = false;
}

private void Form1_Resize(object sender, System.EventArgs e)
{

if( this.WindowState == FormWindowState.Minimized )
{
this.Visible = false;
this.notifyIcon1.Visible = true;
}

}

private void Form1_Closing(object sender,
System.ComponentModel.CancelEventArgs e)
{
this.notifyIcon1.Visible = false;
this.notifyIcon1 = null;

}

Boolean PrimeraVez = true;
private void Form1_Activated(object sender, System.EventArgs e)
{
if( PrimeraVez )
{
PrimeraVez = false;
this.notifyIcon1.Visible = false;
}

}
 

Leer las respuestas

#1 Camilo Villa
19/02/2004 - 21:36 | Informe spam
Hola Kasiyas:

Para solucionar este inconveniente, te sugiero que establezcas la propiedad
MinimunSize al tamaño que aparece registrado en la propiedad Size, que se
supen es el tamaño ideal para tu formulario cuanto este se restablece al
valor original... de resto el código funciona a las mil maravillas...
Felicitaciones, no había visto esto antes... almeno no en mi corta
experiencia...

Me cuentas como te va...

"Kasiyas" escribió en el mensaje
news:
Hola a todos,

Tengo un pequeño problema con una aplicación en c# a la hora de


minimizarla
en un icono de notificación en la bandeja del sistema.
El caso es que cuando he maximizado la ventana de la aplicación (Form1) y


a
continuación la minimizo para ocultarla de forma que quede solo el icono


de
notificación, cuando la vuelvo a restaurar haciendo doble click sobre


dicho
icono de notificación, se vuelve a restaurar maximizada (hasta aqui todo
bien), pero si intento devolverla al tamaño normal (pulsando otra vez el
controlbox de Maximizar/Restaurar de la barra de titulo de la ventana


Form1)
el tamaño de la misma se ve reducido a la barra de título. Y por más que
maximize y restaure, siempre se queda de ese tamaño. Vamos que no hay


forma
de dejarla en el estado normal (original), y siempre pasa despues de
haberla: 1º maximizado, 2º minimizado y dejado como icono de notificación,
3º restaurado haciendo doble click en el icono de notificación y 4º


intentar
devolverla al tamaño normal.
Espero haberme explicado lo suficientemente claro. El codigo con las
funciones implicadas lo he puesto a continuación.

Muchas gracias de antemano.



private void notifyIcon1_DoubleClick(object sender, System.EventArgs e)
{
Show();
WindowState = FormWindowState.Normal;
Activate();
this.notifyIcon1.Visible = false;
}

private void Form1_Resize(object sender, System.EventArgs e)
{

if( this.WindowState == FormWindowState.Minimized )
{
this.Visible = false;
this.notifyIcon1.Visible = true;
}

}

private void Form1_Closing(object sender,
System.ComponentModel.CancelEventArgs e)
{
this.notifyIcon1.Visible = false;
this.notifyIcon1 = null;

}

Boolean PrimeraVez = true;
private void Form1_Activated(object sender, System.EventArgs e)
{
if( PrimeraVez )
{
PrimeraVez = false;
this.notifyIcon1.Visible = false;
}

}


Preguntas similares