PDA

View Full Version : نمایش یک فرم و بستن فرم پدر



bpzone
شنبه 30 تیر 1386, 00:22 صبح
سلام به همگی دوستان
من تازه کار با سی شارپ رو شروع کردم
شاید سوالم خیلی ابتدایی باشه که از این بابت شرمنده

من میخوام یک فرم رو لودئ کنم و بعد فرم فعلی رو ببندم
من خودم از کد زیر استفاده کردم


;()Form2 ob = new Form2
;()ob.show
;()this.Close

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

egoldashraf
شنبه 30 تیر 1386, 00:30 صبح
با استفاده از متد های show و hide میتونی یک فرم رو نمایش ندی. اما اگه حتما میخوای یه فرم بسته بشه و بعد فرم بعدی نمایش داده بشه از طریق کلاس program.cs میتونی اینکار رو انجام بدی.

behrouz_n
شنبه 30 تیر 1386, 07:58 صبح
من هم تقریبا چنین مشکلی دارم
مشکل اصلی انجاست که وقتی فرم را hide میکنی هنوز در حافظه وجود دارد و اگر خواستی از فرم دوم دوباره به فرم اول برگردی نمیتونی فرم اول را show کنی.
اگر بخواهی از فرم اول ، یک نمونه جدید هم بسازی ، چون نمونه اولی هنوز در حافظه هست چند بار که بین فرمها جابجا بشی با کمبود حافظه روبرو میشی

اَرژنگ
شنبه 30 تیر 1386, 12:22 عصر
من هم تقریبا چنین مشکلی دارم
مشکل اصلی انجاست که وقتی فرم را hide میکنی هنوز در حافظه وجود دارد و اگر خواستی از فرم دوم دوباره به فرم اول برگردی نمیتونی فرم اول را show کنی.
اگر بخواهی از فرم اول ، یک نمونه جدید هم بسازی ، چون نمونه اولی هنوز در حافظه هست چند بار که بین فرمها جابجا بشی با کمبود حافظه روبرو میشی
شاید نگه داشتن یک رفرانس به چیزی که لازم دارید که دوباره استفاده کنید را را نگه دارید این مشکل را حل کنه؟:چشمک:

M_rasouli
شنبه 30 تیر 1386, 14:03 عصر
می تونی visible فرم اول را بعد از لود فرم دوم false کنی .

newgoldenman
یک شنبه 31 تیر 1386, 01:55 صبح
سلام به همگی دوستان
من تازه کار با سی شارپ رو شروع کردم
شاید سوالم خیلی ابتدایی باشه که از این بابت شرمنده

من میخوام یک فرم رو لودئ کنم و بعد فرم فعلی رو ببندم
من خودم از کد زیر استفاده کردم


;()Form2 ob = new Form2
;()ob.show
;()this.Close

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

بسیار واضح هست که چرا فرم مورد نظرتون لود نمیشه!

این نکته رو فراموش کردین که نمیشه فرم اصلی برنامه رو Close کرد.
در فرم اصلی برنامه این دو تا کد با یکدیگر معادل هستند:

this.Close();
Application.Exit();

برای اینکه فرم اصلی دیگه نمایش داده نشه، نمیتونید فرم اصلی رو Close کنید. پس باید اون رو Hide کنید.
فرم اصلی برنامه فرمی هست که در Program.cs مشاهده میکنید:


staticvoid Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(fals e);
Application.Run(newForm1());
}

در اینجا فرم اصلی برنامه Form1 هست.