Avatar billede Jim Rasmussen Novice
31. juli 2011 - 16:40 Der er 13 kommentarer og
1 løsning

event når brugeren lukker programmet

Hej. (:

Jeg har et wpf program, hvor jeg gerne vil gøre en funktion lige inden programmet lukkes. Kan jeg på nogen måe få en event til at køre når brugeren trykker på det røde X i hjørnet? Eller lukker programmet på en anden måde (:

Måske er det ikke en event jeg leder efter. Er der ikke en for for onClose jeg kan lytte til?
Avatar billede arne_v Ekspert
31. juli 2011 - 16:41 #1
Avatar billede Jim Rasmussen Novice
31. juli 2011 - 19:26 #2
private void Form1_Closed(object sender, System.EventArgs e)
    {
        count -= 1;
    }

private void Form1_Closing(object sender, System.EventArgs e)
    {
        count -= 1;
    }


Men hedder de bare Closing og closed? Er det bare noget man skal vide? (:

Og kan formen finde dem uanset hvor man lægger dem? (:
Avatar billede arne_v Ekspert
31. juli 2011 - 19:33 #3
Du skal jo lige tilfoeje dem som events.

Inde i properties paa formen i deisgn wizard.

Eller i kod hvis du ikke bruger designer.
Avatar billede Jim Rasmussen Novice
01. august 2011 - 00:38 #4
jamen det er de vel som de er ovenfor ikke?? Er lidt ny i brugen af events
Avatar billede Jim Rasmussen Novice
01. august 2011 - 00:39 #5
private void Form1_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
  // Determine if text has changed in the textbox by comparing to original text.
  if (textBox1.Text != strMyOriginalText)
  {
      // Display a MsgBox asking the user to save changes or abort.
      if(MessageBox.Show("Do you want to save changes to your text?", "My Application",
        MessageBoxButtons.YesNo) ==  DialogResult.Yes)
      {
        // Cancel the Closing event from closing the form.
        e.Cancel = true;
        // Call method to save file...
      }
  }
}



Ovenfor er alt hvad de tilbyder som eksempel hos msdn?
Avatar billede arne_v Ekspert
01. august 2011 - 00:45 #6
Det der er en metode.

For at faa den koert ved closing skal du enten gaa ind i formens properties og finde closing event og skrive navnet paa metoden.

Eller du kan manuelt lave en:

Closing += Form1_Closing;
Avatar billede Jim Rasmussen Novice
01. august 2011 - 12:48 #7
ok. Så forstår jeg det bedre :p

Tak (:

skriv lige et svar! :D
Avatar billede arne_v Ekspert
01. august 2011 - 15:05 #8
svar
Avatar billede arne_v Ekspert
01. august 2011 - 15:06 #9
Jeg gaetter paa at du bruger designer - det goer naesten alle .NET udviklere.

Men proev for sjovs skyld at aabne den .cs fil som wizarden har genereret.

De kan godt give lidt ekstra forstaaelse af tingene. Og det er saamaend rimeligt trivielt kode.
Avatar billede Jim Rasmussen Novice
01. august 2011 - 16:09 #10
Har aldrig brugt designer (:

Vil gerne vide hvordan tingene bagved fungere (:

Men er bare lidt nu i brugen af events.

Er vandt tin hjemmeside kodning. Og der bruger jeg for det meste javascript og ajax. (:


Nu ville jeg så bare lige prøve at lave noget i wpf


Men tak for din hjælp... :D


PS. Skal man altid bruge "System.ComponentModel.CancelEventArgs" til disse ??
Avatar billede arne_v Ekspert
01. august 2011 - 16:19 #11
Nej.

Du kan slaa op i docs hvad hver enkelt event bruger:

http://msdn.microsoft.com/en-us/library/system.windows.forms.form_events.aspx
Avatar billede Jim Rasmussen Novice
01. august 2011 - 16:23 #12
Her lært at lave mine egne events.

hvor jeg lave som nedenfor

public EventHandler newEvent;
public void onNewEvent()
{
    if(this.newEnevt != null)
    {
        this.newEvent(this, EventArgs.Empty);
    }
}

eller

public EventHandler<Property> newEvent;
public void onNewEvent(string propertyValue)
{
    if(this.newEnevt != null)
    {
        Property e = new Property();
        e.Something = propertyValue;
        this.newEvent(this,e);
    }
}



og så lytter jeg jo bare til dem ved at sige
newEvent += new EventHandler(someMethod);



Hvorimod at man her bare skulle sige
Closing += someMethod;


Det var bare det der forvirede mig (:
Avatar billede Jim Rasmussen Novice
01. august 2011 - 16:31 #13
Undskyld for tastefejl. (: Sidder på et nyt tastetur. Og det gør faktisk en stor forskel!! Ö
Avatar billede arne_v Ekspert
02. august 2011 - 00:33 #14
o.NewEvent += SomeMethod;

burde ogsaa virke.

Forskellen paa om man skal angive en event handler er ikke:
  din kode <> MS kode
men:
  ny .NET version <> gammel .NET version
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester



IT-JOB

Metroselskabet og Hovedstadens Letbane

Cyber Security Konsulent

Udviklings- og Forenklingsstyrelsen

ITSM-koordinator

Udviklings- og Forenklingsstyrelsen

IT-generalister til rollen som systemejer

Udviklings- og Forenklingsstyrelsen

Business Analyst med flair for test