C# uygulama kapanırken işlem yaptırma sorunu

nobody946

Doçent
Katılım
4 Mayıs 2012
Mesajlar
508
Reaksiyon puanı
2
Puanları
18
arkadaşlar öncelikle herhangi bir hata vermiyor, fakat isteğimide yapmıyor. kod şu şekilde buyrun:

Kod:
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            StreamWriter dosya = new StreamWriter("tarihbilgisi.dll");
            dosya.WriteLine(DateTime.Now.Day);
            dosya.Close();
        }

ne yapabiliriz :blink:
 

annttiigs

Profesör
Emektar
Katılım
7 Şubat 2007
Mesajlar
2,589
Reaksiyon puanı
24
Puanları
38
Biraz araştırdığımda bulduğum şey şu. sadece FormClosing olayını yazmak yetmiyor. Aynı zamanda bu event'i gui designer'den ilgili component'e eklemek de gerekli imiş.

Attach işlemini nasıl yapacağını ise tam bulamadım ( Java'cı olarak .NET Studio'ya aşina değilim de ). Herhalde form properties içinde event'leri double click ile ya da handler'i göstererek halledebilirsin.

bir başka yöntem ise;


Formun OnFormClosing metodunu override etmek. Şöyle ki;

"protected override" yazdığında intellisense zaten sana seçeneklerini sunacaktır. Oradan OnFormClosing'i seçip kodunu şu şekilde tamamlayabilirsin.

Kod:
protected [B]override [/B]void OnFormClosing(FormClosingEventArgs e) {
        // buraya kodunu yaz.
        // ...

        base.OnFormClosing(e);
    }

 

nobody946

Doçent
Katılım
4 Mayıs 2012
Mesajlar
508
Reaksiyon puanı
2
Puanları
18
Biraz araştırdığımda bulduğum şey şu. sadece FormClosing olayını yazmak yetmiyor. Aynı zamanda bu event'i gui designer'den ilgili component'e eklemek de gerekli imiş.

Attach işlemini nasıl yapacağını ise tam bulamadım ( Java'cı olarak .NET Studio'ya aşina değilim de ). Herhalde form properties içinde event'leri double click ile ya da handler'i göstererek halledebilirsin.

bir başka yöntem ise;


Formun OnFormClosing metodunu override etmek. Şöyle ki;

"protected override" yazdığında intellisense zaten sana seçeneklerini sunacaktır. Oradan OnFormClosing'i seçip kodunu şu şekilde tamamlayabilirsin.

Kod:
protected [B]override [/B]void OnFormClosing(FormClosingEventArgs e) {
        // buraya kodunu yaz.
        // ...

        base.OnFormClosing(e);
    }


override yöntemi çalıştı teşekkür ediyorum diğerini denemedim, daha doğrusu anlayamadım :D
 

annttiigs

Profesör
Emektar
Katılım
7 Şubat 2007
Mesajlar
2,589
Reaksiyon puanı
24
Puanları
38
elimde .net studio kurulu olsa daha rahat anlatırdım. biraz karıştırmam lazım.

naçizane tavsiyem ise; programlamanın ana dili ingilizcedir. ingilizce ( bilmiyorsan ) öğren. konuşmaktan ziyade yazma ve okumayı öncelikli öğren.
ben şimdiye kadar toplasan 100 satır c# kodu yazmışımdır. soruna çözüm ararken elimde sadece ingilizce vardı.
 

nobody946

Doçent
Katılım
4 Mayıs 2012
Mesajlar
508
Reaksiyon puanı
2
Puanları
18
ingilizcemde sıkıntı yok Allaha şükür, 2 sertifikam var. önerilerin için çok teşekkür ederim.
 

sdmh

Profesör
Katılım
22 Ağustos 2008
Mesajlar
1,108
Reaksiyon puanı
14
Puanları
38
Visual studio 2008'de denendi.

Form1.designer.cs de
this.ResumeLayout(false);

satırının altına aşağıdaki satırı ekle bir dene

this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Form1_Closing);
 

annttiigs

Profesör
Emektar
Katılım
7 Şubat 2007
Mesajlar
2,589
Reaksiyon puanı
24
Puanları
38
Visual studio 2008'de denendi.

Form1.designer.cs de
this.ResumeLayout(false);

satırının altına aşağıdaki satırı ekle bir dene

this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Form1_Closing);

olay tamamen bu aslında :) GUI designer'inde yaptığı bu kodu eklemek olurdu herhalde.
 

nobody946

Doçent
Katılım
4 Mayıs 2012
Mesajlar
508
Reaksiyon puanı
2
Puanları
18
kodu görünce daha iyi anladım. teşekkür ederim.
 

cobra11

Profesör
Katılım
28 Haziran 2009
Mesajlar
4,659
Reaksiyon puanı
16
Puanları
38
@annttiigs ve @sdmh konuyu biraz hortlatmış gibi olacam ama. C# da normal kapatmalarda değilde. istem dışı kapatmalarda örneğin görev yöneticisinden işlemi sonlandır dediğin bu eventları çağırma yöntemi varmı peki?
 
Üst