–1 امتیاز

سلام،  راههای بستن فرم (بدون استفاده از کنترل Close و با کد نویسی)، و باز شدن فرم دوم طوری که فرم اول پنهان شود و با بستن فرم دوم مجددا فرم اول نمایش داده شود...

 

 

1 پاسخ

+4 امتیاز

در فرم اول این کد رو بنویس :

 Form2 f2 = new Form2();
            f2.Show();
            this.Hide();

در فرم دوم هم این رو بنویس :

 Form1 f1 = new Form1();
            f1.Show();
            this.Close();

 

دوست عزیز، ممنون از راهنمایی شما،  از کد های بالا استفاده می کردم اما متاسفانه با وجود استفاده از Hide همچنان فرم نمایش داده می شد که دقیقا نمی دونم دلیلش چی بود، و به دنبال روش دیگری بودم اما نهایتا از این کد استفاده کردم..

           System.Threading.Thread mythread = new System.Threading.Thread(new System.Threading.ThreadStart(OpenNewFrom));
    mythread.Start();
 this.Close();

        }
        public static void OpenNewFrom()
        {

            Application.Run(new Main());//Create an instance of your new form. No need to call show method.
        }

توسط (133 امتیاز) 2 3 13
@sana :

احتمالا شما از متد ShowDialog فرم استفاده کردین .

فکر کنم کد دوستمون هم اشکالی داشته باشه ٰ‌. در فرم اول که فرم دوم رو نمایش داده از متد this.hide() استفاده کردن . با این متد نمونه ی اولیه فرم در حافظه می مونه و فقط اونو مخفی می کنیم . در موقع بستن فرم دوم دوباره اومدن یک شی از فرم اول ایجاد کردن و اونو نمایش دادن که نیازی به این کار نیست ( چون نمونه ی قبلی فرم هنوز در حافظه کامپیوتر موجود هست) . راه حل اینه که Reference فرم اول رو به فرم دوم بفرستیم و وقتی که فرم دوم رو مخفی کردیم با استفاده از اون Reference فرم اول رو نمایش بدیم .

 

دوستان به این نکته توجه کنن که با اینکار هنوز فرم ها در حافظه می مونن و حافظه رو اشغال می کنن.
توسط (6,145 امتیاز) 5 11 116
سوال جدید

2,337 سوال

2,871 پاسخ

3,725 دیدگاه

3,924 کاربر

دسته بندی ها

...