none
Form içinde Form açma ve diğerlerini kapatma RRS feed

  • Soru

  • Merhaba,

    Bir ana formum var. Formda panel içinde butonlar var ve mdi ile tıklanan butona göre yeni formları bu ana formun içinde açıyorum. 1. butona tıkladığımda form2 açılıyor. tekrar tıkladığımda yada 2.butona tıkladığımda form3 üst üste açılıyor. Sorunum şu: yeni form açılırken önceki buton tıklamalarında açılan formu kapatmak istiyorum. Yardımcı olabilir misiniz?


    23 Eylül 2019 Pazartesi 14:17

Tüm Yanıtlar

  • Mainform olarak kullandığınız forma şöyle bir property ekleyin ;

     private Form _currentMdiForm = null;

    Sonra aşağıdaki gibi bir metodla kontrol edin ; 

       private void SetCurrentForm(ref Form form)
            {
                if (_currentMdiForm != null)
                {
                    _currentMdiForm.Close();
                }
    
                _currentMdiForm = form;         
            }


    Altan Özdemir

    23 Eylül 2019 Pazartesi 14:41
  • Teşekkürler benzer bi yapıyla çözdüm cevap beklerken.

    public partial class Form1 : MetroForm
        {
            Form2 frm2;
            Form3 frm3;

            public static Form2 acikmi2;
            public static Form3 acikmi3;

            public Form1()
            {
                InitializeComponent();
            }

            private void metroTile1_Click(object sender, EventArgs e)
            {
                if (acikmi3 != null)
                { frm3.Close(); acikmi3 = null; }

                if (acikmi2 == null)
                {
                    frm2 = new Form2();
                    frm2.MdiParent = this;
                    frm2.WindowState = FormWindowState.Maximized;
                    frm2.Show();
                    acikmi2 = frm2;
                }
            }

            private void metroTile2_Click(object sender, EventArgs e)
            {
                if (acikmi2 != null)
                { frm2.Close(); acikmi2 = null; }

                if (acikmi3 == null)
                {
                    frm3 = new Form3();
                    frm3.MdiParent = this;
                    frm3.WindowState = FormWindowState.Maximized;
                    frm3.Show();
                    acikmi3 = frm3;
                }

            }
        }

    23 Eylül 2019 Pazartesi 15:11