Merhaba,
iki adet form var benim senaryoda.Biri ana from olan form1,
diğeride sizin sadece bir kez göstermek istediğiniz sınavekleformu olan FormYeni.
kod basit olsun diye ben form1 e bir buton ekledim onun click olayından sınavekle formunu çağırdım.
Koda geçersek :
Form1.cs kodları:
//formYeni nin açık penceresine erişmek için kullanılan static değişken
public static FormYeni sinavEkleFormu;
private void Form1_Load(object sender, EventArgs e)
{
//form1 mdi form olmalı
this.IsMdiContainer = true;
}
//buton a tıklanınca sınav ekle formu açılıyor...
private void button1_Click(object sender, EventArgs e){
if (sinavEkleFormu == null){
FormYeni yeni = newFormYeni();
//bu form form1 in child ı olsun
yeni.MdiParent =this;
sinavEkleFormu = yeni;
//sınavekleformu artık null değil
//tekrar menüden form çağrıldığında sınavekleformu null olmadığından aşağıdaki else bloğu çalışır.
yeni.Show();
}
else
MessageBox.Show("Sınav ekle formu zaten açık...");
}
//Tek sorun FormYeni (sınavekle formu) kapatıldığında static sınavekleformu tekrar null olmalı ki
//menüden erişim sağlayabilelim
FormYeni kodu:
//formYeni nin formclosing olayında bizim static sınavekleformu değişkenine null atadık..
//sınavekleformu değişkenini static yapmamızın sebebide formYeni den de bu değişkene erişim sağlamaktı..
private void FormYeni_FormClosing(object sender, FormClosingEventArgs e){
Form1.sinavEkleFormu = null;
}
İyi çalışmalar...