#region aynı pencerenin tekrar açılmasına ve birden fazla pencere ile çalışmaya izin verilince performans sorunlarının önlenebilmesi için aynı pencere sayacı ve işaretleyicisi kondu /// //pencere isimlerinde [# olmasın dikkat et yoksa patlar //ftemp yeni açılacak form int aynipenceredenmaxadet=3; //<<=toplammaxpencereadet) { MessageBox.Show("Çok fazla pencere açık ("+toplammaxpencereadet.ToString()+" adet), eski pencerelerinizi kapatıp tekrar deneyiniz.","Sistem Performans Koruması"); fTemp.Dispose(); Cursor=Cursors.Default; return; } int tekrarformsay=0; int sirano=0; for(int i=0;i0) { string gert=this.MdiChildren[i].Text.Substring(this.MdiChildren[i].Text.IndexOf("[#")+2,this.MdiChildren[i].Text.Length-1 - (this.MdiChildren[i].Text.IndexOf("[#")+2)); if(Convert.ToInt16(gert)!=tekrarformsay)//boştaki ilk rakamı Ahmet çakar { sirano=tekrarformsay; break; } } tekrarformsay++; sirano= tekrarformsay; } } if(sirano>=aynipenceredenmaxadet) { MessageBox.Show("Aynı pencereden maximum "+aynipenceredenmaxadet.ToString()+" tane açabilirsiniz.","Sistem performans koruması"); fTemp.Dispose(); Cursor=Cursors.Default; return; } if(sirano>0) { //MessageBox.Show("Açmak istediğiniz pencereden halihazırda mevcut var, ek bir pencere DAHA açıyorsunuz!\nPerformans sorunları yaşamak istemiyorsanız eskileri kapayınız.","Aynı pencere açık"); fTemp.Text=fTemp.Text+" [#"+sirano.ToString()+"]"; } #endregion