1. Introduktion

I den här artikeln kommer vi att se hur man visar formuläret som blir helt transparent innan det stängs. Vi måste följa de nedan angivna stegen för att skapa exempelapplikationen med Fade-Out-effekt.

2. Ställ in formuläret

  1. Skapa ett nytt Visual C # -projekt med VS 2005 IDE . Projekttypen är Windows-applikation.
  2. Lägg till en etikettkontroll i formuläret.
  3. Lägg till en timerkomponent i formuläret. Komponenten visas under formuläret i det grå området som visas på skärmdumpen.
  4. Om det krävs kan vi ställa in etiketten bakgrunds- och förgrundsfärger.
  5. Ställ in Form s bakgrundsfärg.

Den färdiga formen ser ut nedan:

Form Fade-out Exempel - Form Design |

3. Timerkomponenten

Timern finns i komponentdelen av verktygslådan. När vi drar och släpper den till formen kommer den att visas som visas på bilden ovan. Timerkomponent exponerar en händelse som heter Tick . Denna Tick-händelse tas upp för en viss Time Spawn. Vi använder Intervallegenskapen för att ställa in denna Time Spawn.

Det finns olika typer av timer tillgängliga i dot net framework och det kommer jag att diskutera i en annan artikel. Här använde vi tiden som en komponent.

4. Form Load Event Handler

Dot Net Framework åberopar den här hanteraren när formuläret laddas och innan det visas. Vi fortsätter med stegen för att implementera Form Load-händelseshanteraren.

  1. Dubbelklicka på formuläret.
  2. Det tar oss till kodredigeraren i Form Load-händelsen. Lasthändelsen är standardhändelsen för formuläret.
  3. Tilldela texten till etikettkontrollen i hanteraren av lasthändelser. Observera användningen av Miljö.Nyheter för att placera en ny rad i strängen. Koden som skrivs i den här hanteraren visas nedan:
 private void frmFadeClose_Load (objekt avsändare, EventArgs e) {// Fade001: Ställ in etiketten Text Etikett1.Text = "Fade Effekten ges till" + Miljö.NewLine + "detta formulär genom att ställa in" + "Opacity Property"; } 

5. Formens opacitet

Vi såg redan om Timern och Tick Event för det. När en Tick-händelse höjs av Timer-komponenten kommer koden i Tick Event-hanteraren att åberopas. Så i den här hanteraren ställer vi in ​​Opacity-egenskapen genom att minska fastighetsvärdet.

Opacity-egenskapen används för att kontrollera transparensen i formuläret. Den här egenskapen anges i procent. När opacitetsegenskapen är 0% är formuläret helt transparent. Så det är uppenbart att standardvärdet för den här egenskapen är 100%. Eftersom det är vanligt att varje användare vill visa sin form utan några OH-film såvida det inte finns en speciell nödvändighet.

Nu kommer vi att fortsätta med stegen för att minska denna procentandel från 100% till 1% i hanteraren som körs regelbundet tack vare Timer-komponenten. Effekten är att formen går från fast till helt transparent.

  1. Dubbelklicka på Timer1-komponenten.
  2. Detta kommer att ta oss till Timers Tick ​​Event Handler .
  3. Inuti denna hanterare skriver vi nedanstående kod:
 privat void timer1_Tick (objekt avsändare, EventArgs e) {// Fade002: Kontrollera egenskapen Opacity, When // Opacity is 1% Stäng formen och // stopp timern. if (this.Opacity> 0.01) this.Opacity = this.Opacity - 0.01f; annars detta. Stäng (); } 

6. Hanterare för formulärstängning

" FormClosing Event " inträffar innan formuläret stängs. Evenemanget själv säger att jag ännu inte är klar (Ej stängd, På väg att stänga). Så det här är rätt plats för oss att säga ”Hej stäng inte det nu. Jag ska säga när du ska stänga ”. Vad vill vi uppnå? Vi vill tona ut formuläret när användaren klickar på stängningsknappen.

När en användare klickar på stängningsknappen avfyras först FormClosing Event och sedan " FormClosed Event ". Vi kontrollerar Egenskaperna för Opacity i FormClosing-evenemanget, och när det inte är tillräckligt transparent kommer vi att avbryta evenemanget. Vi kan använda " FormClosingEventArgs " som skickas som parameter av FrameWork. Under tiden kommer vi att aktivera timerkomponenten genom att ställa in Enable Property till true. Att ställa in den här egenskapen gör att timern höjer Tick-händelsen under en viss tidsperiod baserat på värdet i Intervallegenskap . Observera att vi specificerade intervallet som 50. Enheten är i millisekunder. Detta betyder att Tick-evenemanget höjs 20 gånger på en sekund. Den enkla beräkningen ger på cirka 5 sekunder formen blir helt transparent och blir stängd. Nu fortsätter vi med stegen:

1) Eftersom FormClosing inte är en standardhändelse, gå till formulärdesignern och välj formuläret.

2) Öppna fönstret Egenskap och klicka på händelseknappen.

Händelseknapp - Egenskapsfönster |

3) Dubbelklicka på händelsens namn, FormClosing, i listan över vänsterhändelser.

4) Detta kommer att ta oss till hanteraren av formuläret stängning i kodfönstret.

5) Skriv nedan angiven kod. Förklaringen till koden ges före dessa steg.

 private void frmFadeClose_FormClosing (objekt avsändare, FormClosingEventArgs e) {// Fade003: Avbryt Form close close // när opaciteten är mer än 1%. if (this.Opacity> 0.01f) {e.Cancel = true; timer1.Interval = 50; timer1.Enabled = true; } else {timer1.Enabled = falsk; }} 

Det är allt. Vi har gjort det. Nu kan vi köra applikationen och klicka på stängningsknappen och titta på formuläret försvinner innan det tas bort från minnet. Nedan visas skärmbilden som togs när formuläret är i halvtransparent tillstånd.

Form Fade-Out Exempel |

Komplett kodlista

 använder System; med hjälp av System.Collections.Generic; med hjälp av System.ComponentModel; använder System.Data; använder System.Drawing; med System.Text; använder System.Windows.Forms; namnutrymme FadeClose {offentlig partiell klass frmFadeClose: Form {public frmFadeClose () {InitializeComponent (); } privat tomrum frmFadeClose_Load (objekt avsändare, EventArgs e) {// Fade001: Ställ in etiketten Label Text1.Text = "Fade Effekten ges till" + Miljö.NewLine + "detta formulär genom att ställa in" + "Opacity Property"; } privat void timer1_Tick (objektavsändare, EventArgs e) {// Fade002: Kontrollera egenskapen Opacity, When // Opacity is 1% Stäng formen och // stopp timern. if (this.Opacity> 0.01) this.Opacity = this.Opacity - 0.01f; annars detta. Stäng (); } privat tomrum frmFadeClose_FormClosing (objekt avsändare, FormClosingEventArgs e) {// Fade003: Avbryt formstängning // när opaciteten är mer än 1%. if (this.Opacity> 0.01f) {e.Cancel = true; timer1.Interval = 50; timer1.Enabled = true; } else {timer1.Enabled = falsk; }}}}