İçeriğe geç
ShiftDelete.Net
Haber ara/ SDN'ye SorGiriş
Haber Akışı SDNTV İnceleme Forum Yapay Zeka Akıllı Telefon Elektrikli Otomobil Oyun ShiftDelete.Net Global Teknoloji Haberleri Mobil Otomobil Donanım Savunma Bilim Sosyal Medya İnternet Giyilebilir Teknoloji Rehber Ürünler Son dakika Yazarlar
  1. Ana sayfa
  2. Topluluk
  3. Programlama
  4. Programlama Dilleri
Programlama Dilleri

C# mdi formlar

Dehcik*30.01.20104 cevap3.467 görüntüleme
2009'den beri625 mesaj
#1
Merhabalar,

bir tane windows form uygulaması yapıyorum ve 4-5 adet form kullanıyorum.

frmMain var ve toolstripten formları seçtiriyorum ancak bir form açıldığında bir daha aynısının açılmasını istemiyorum.

Formları internal tanımladım ama bu seferde form 1 kere açıldğında bir daha açılmıyor.

Nasıl çözebilirim ?
Cevaplar
2008'den beri6.607 mesaj
#2
aşağıdaki kodu kullanabilirsin:
[COLOR=blue]private[/COLOR] [COLOR=blue]void[/COLOR] TekFormAc([COLOR=blue][/COLOR])
         {
  
             [COLOR=#2B91AF]FormCollection[/COLOR] fc = [COLOR=#2B91AF]Application[/COLOR].OpenForms;
             [COLOR=blue]bool[/COLOR]  FormBulundu = [COLOR=blue]false[/COLOR];
             [COLOR=blue]foreach[/COLOR]  ([COLOR=#2B91AF]Form[/COLOR] frm [COLOR=blue]in[/COLOR] fc)
             {
                 [COLOR=blue]if[/COLOR]  (frm.Name == [COLOR=#A31515]"Form2"[/COLOR])
                 {
                     frm.Focus();
                       FormBulundu = [COLOR=blue]true[/COLOR];
                 }
             }
  
             [COLOR=blue]if[/COLOR]  (  FormBulundu == [COLOR=blue]false[/COLOR])
             {
                 [COLOR=#2B91AF]Form2[/COLOR] f = [COLOR=blue]new[/COLOR] [COLOR=#2B91AF]Form2[/COLOR]();
                 f.Show();
             }
         }
2007'den beri17 bin mesaj
#3
bir global değişken tanımlayıp form açıldığında durumu değişkene yansıtıp bir dahaki tıklamalarda form durumunu kontrol ettirebilir ve ona göre işlem yaptırabilirsiniz...
Dehcik* Konuyu açan
2009'den beri625 mesaj
#4
N3CAT1 dedi: ↑
aşağıdaki kodu kullanabilirsin:
[COLOR=blue]private[/COLOR] [COLOR=blue]void[/COLOR] TekFormAc([COLOR=blue][/COLOR])
         {
  
             [COLOR=#2B91AF]FormCollection[/COLOR] fc = [COLOR=#2B91AF]Application[/COLOR].OpenForms;
             [COLOR=blue]bool[/COLOR]  FormBulundu = [COLOR=blue]false[/COLOR];
             [COLOR=blue]foreach[/COLOR]  ([COLOR=#2B91AF]Form[/COLOR] frm [COLOR=blue]in[/COLOR] fc)
             {
                 [COLOR=blue]if[/COLOR]  (frm.Name == [COLOR=#A31515]"Form2"[/COLOR])
                 {
                     frm.Focus();
                       FormBulundu = [COLOR=blue]true[/COLOR];
                 }
             }
  
             [COLOR=blue]if[/COLOR]  (  FormBulundu == [COLOR=blue]false[/COLOR])
             {
                 [COLOR=#2B91AF]Form2[/COLOR] f = [COLOR=blue]new[/COLOR] [COLOR=#2B91AF]Form2[/COLOR]();
                 f.Show();
             }
         }
Kodu click olayında denedim olmadı class içinde yazim dedim pek değişmedi.
Ama FormCollection'ı öğrendiğim iyi oldu sağol.
Dehcik* Konuyu açan
2009'den beri625 mesaj
#5
Tamam sorun dediğin gibi oldu halloldu çok teşekkür ederim.

Cevabını yaz

Cevap yazmak için giriş yap ya da üye ol. Eski forum kullanıcı adın ve parolanla girebilirsin.