Jump to content

C# Bütün Formları Kapatma


lamont
 Share

Recommended Posts

Programda Panel Ekranında Kullanıcı Adı Şifre Dogrumasını Geçtikten sonra Panel Gizleniyor Ana Ekran Geliyor Ana Ekranı Kapatmak İstedigimizde Kısaca Bütün Formları Kapatmak İstedigmizAşagıdaki Kodda Defa Evet Tıklayınca Kapanıyor Sorun Nedir

 private void frmAna_FormClosing_1(object sender, FormClosingEventArgs e)
        {
            DialogResult kapat;
            kapat = MessageBox.Show("Programı Kapatmak İstedignizden Eminmsiniz", "Resturant Yazılımı", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Warning);

            if (kapat == DialogResult.Yes)
            {
                Application.Exit();
            }
        }
Link to comment
Share on other sites

 

Programda Panel Ekranında Kullanıcı Adı Şifre Dogrumasını Geçtikten sonra Panel Gizleniyor Ana Ekran Geliyor Ana Ekranı Kapatmak İstedigimizde Kısaca Bütün Formları Kapatmak İstedigmizAşagıdaki Kodda Defa Evet Tıklayınca Kapanıyor Sorun Nedir

 private void frmAna_FormClosing_1(object sender, FormClosingEventArgs e)
        {
            DialogResult kapat;
            kapat = MessageBox.Show("Programı Kapatmak İstedignizden Eminmsiniz", "Resturant Yazılımı", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Warning);

            if (kapat == DialogResult.Yes)
            {
                Application.Exit();
            }
        }

Kodda bir sorun yok uygulama alanı için yanlışlık var.Application kelime anlamı uygulamadır.  

 

Anaformun formclosed özelliğine aşağıdaki kodu ekle yeterlidir.

private void Form1_FormClosed(object sender, FormClosedEventArgs e)
        {
            this.Hide();
        }
veya 

Aşağıdaki kod ile yapabilirsin. 

 private void Form1_FormClosed(object sender, FormClosedEventArgs e)
        {
            Form1 from = new Form1();
            from.Close();
           
        }
Edited by ozhan3030
Link to comment
Share on other sites

  • Editor

Ozhqn senin paylastigin kod da yanlis form1 closed eventenda yeni form acip onu gizliyorsun this.hide yeterli ama arkadas onu istememis kullanici pencereleri kapattimi tkrar login ekranina dussun istiyor yanlis anlamadiysam

Link to comment
Share on other sites

Merhabalar form closing eventi yerine 2. formu açacak nesnenin eventine mesela bir buton click eventine;

            this.Hide();
            Form2 frm2 = new Form2();
            frm2.ShowDialog();
            this.Show();

kodunu yazmanız halinde 2. form kapanır kapanmaz 1. form görünür olacaktır.

 

Kolay gelsin =)

Link to comment
Share on other sites

  • Editor

Merhabalar form closing eventi yerine 2. formu açacak nesnenin eventine mesela bir buton click eventine;

            this.Hide();
            Form2 frm2 = new Form2();
            frm2.ShowDialog();
            this.Show();

kodunu yazmanız halinde 2. form kapanır kapanmaz 1. form görünür olacaktır.

 

Kolay gelsin =)

 

Bu şekilde Form 2 logon ekranı olarak kabul edersek. Siz her formu kapattıklarında logon ekranını tekrar oluşturmuş olursunuz buda memory i şişirir.

Logon ekranı arkaplanda gizli çünkü.

 

Form2 frm2 = (Form2) Application.OpenForms["Form2"];

 

şeklinde kullanılırsa açık olan logon ekranına tekrar erişilmiş olur her defasında tekrardan oluşturulmaz.

Link to comment
Share on other sites

Olayı tam anlayamadım ya da sen tam anlatamadın her iki ihtimale karşı bir kaç bir şeyler yazalım;

 private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (e.CloseReason == CloseReason.UserClosing)
            {
                if (MessageBox.Show("Programı Kapatmak İstedignizden Emin misiniz?",
                               "Restaurant Yazılımı",
                                MessageBoxButtons.OKCancel,
                                MessageBoxIcon.Information) == DialogResult.OK)
                    Environment.Exit(0);
                else
                    e.Cancel = true; 
            }

        }

Bu şekilde yaparsan açık olan tüm formlar kapanır.

public static void closeAll()
        {
            FormCollection fc = Application.OpenForms;
            if (fc.Count > 1)
            {
                for (int i = (fc.Count); i > 1; i--)
                {
                    Form selectedForm = Application.OpenForms[i - 1];
                    selectedForm.Close();
                }
            }
        }

Bu şekilde de yaparsan açık olan diğer tüm formlar kapanır yanlızca kendisi kapanmaz onuda logon ekranı mı yaparsın bilemem. Fonksiyon olarak yazdım nasıl kullanacağını biliyorsundur.Birini Form1_FormClosing evresine diğerini de Butondan çağırarak yapabilirsin. Bu arada "Resturant" yazmışsın böyle bir ifade yoktur doğrusu "Restaurant" fransızca kelimedir. Türkçesi lokantadır. Niye bunu söylüyorum programcı olmanın ilk adımlarından biri programında düzgün ve uygun Türkçe kullanmaktadır.

Link to comment
Share on other sites

Olay Basit Aslında Login Ekranı Dahil Tüm Forum Mesaj Penceresinde Kapatmak  İstiyorum 2. Verdiğin Kodda Metodu Yukarıda Koddaki Gibi İf İçinde Kullandım Kapatmadım Amacım Evet Tıklanırsa Tüm Forumları Kapat Simpson

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...