webForumDet fria alternativet

NotifyIcon dubbelklickshantering

.NET

4 svar · 244 visningar · startad av Mc Fetto

Medlem sedan nov. 20022 355 inlägg
Frågan#1

Hej, jag har en NotifyIcon som jag har kopplat ett event till för dubbelklick. Det som ska hända när man dubbelklickar är att huvudformen ska bli synlig. Detta fungerar fint första gången, men inte flera gånger när man minimerat formen. Dubbelklickseventet ser ut:

WindowState = FormWindowState.Normal;

När jag kör igång applikationen så sätter jag i konstruktorn till formen följande kod för att inte visa formen från början:

WindowState = FormWindowState.Minimized;

Formen är även satt till att inte visas i TaskBar.

Är det ngt speciellt event som sker när man klickar på minimera på formen? Förstår inte alls vad som felar!

Medlem sedan maj 20021 466 inlägg
#2

Prova detta.
if(WindowState == FormWindowState.Minimized) WindowState = FormWindowState.Normal;
Show();
Activate();

Det verkar fungera för mig.

Medlem sedan nov. 20022 355 inlägg
#3

Lite bättre blev det allt :)
Nu blir det såhär:
http://www.webforum.nu/attachment.php?s=&postid=888463
edit: gör jag såhär blir det bra:

Show();
Activate();
this.Width = 544;
this.Height =  320;
this.WindowState = FormWindowState.Normal;
Medlem sedan maj 20021 466 inlägg
#4

Använder du min kod ska det inte bli så här. Att alltid ställa in bredd, höjd eller WindowState är inte bra eftersom det ändrar de inställningar som användaren har gjort.

Att fönstret fortfarande är minimerat när du ändrar WindowState till Normal är ju väldigt konstigt. Fönstret på bilden är minimerat utan knapp i aktivitetsfältet. Det är inte bra. Normalt ska bara kunna minimera fönster med knappar i aktivitetsfältet. Stäng därför av minimeringsfunktionen eller lägg till en knapp i aktivitetsfältet.

Vill du kunna dölja fönstret helt kan du använda Hide när användaren vill stänga fönstret på detta sätt:

private void MainForm_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
	if(!CloseApp)
	{
		e.Cancel = true;
		Hide();
	}
}

För att avsluta programmet ändrar du CloseApp till True och anropar Close.

Medlem sedan nov. 20022 355 inlägg
#5

Jag har provat ditt första sätt, men det fungerar inte som beskrivits ovan. Om jag gör såhär fungerar det dock:

            Show();
            Activate();
            this.WindowState = FormWindowState.Normal;

Ska titta på det andra tipset imorn! Tackar :)

268 ms totalt · 4 externa anrop · v20260731065814-full.bd618308
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
139 ms — hämta tråd, inlägg och bilagor (db)
117 ms — ändringar (db)