تبلیغات
4linecode - جلوگیری از باز شدن فرم در حال اجرا

جستجو

 

جلوگیری از باز شدن فرم در حال اجرا

چهارشنبه 30 فروردین 1391   01:37 ب.ظ


نوع مطلب : آموزش C#.NET ،

با استفاده از الگوی Generic Singleton میتوان از باز شدن مجدد فرمی که داخل برنامه در حال اجرا هست، جلوگیری کرد. یک کلاس در پروژه ایجاد و کد زیر رو داخلش بنویسید:

public class SingletonProvider<T> where T : new()
{
    public static T Instance
    {
        get
        {
            return SingletonCreator.Instance;
        }
    }
    class SingletonCreator
    {
        private static T objInstance;
        public static T Instance
        {
            get
            {
                Form objForm = objInstance as Form;
                if (objInstance == null || objForm.IsDisposed == true)
                    objInstance = new T();
                return objInstance;
            }
        }
    }
}

حالا برای استفاده، مثلا در فرم MDI  وقتی میخوایم از منو یک فرم رو صدا بزنیم، با استفاده از کد زیر، دیگه امکان باز شدن مجدد فرم (یک فرم که باز هست رو دوباره بازش کنیم) از بین میره:

FormName objForm = SingletonProvider<FormName>.Instance;
objForm.MdiParent = this;
objForm.Show();


نوشته شده توسط : Mehran Roohi Karimi