PDA

View Full Version : سوال: باز شدن MDI parent



PAIZE 65
شنبه 10 بهمن 1388, 09:32 صبح
من فرم login دارم که با وارد کردن user & pass وارد فرم اصلی میشه که فرم اصلی یک MDI parent هسش می خوام وقتی وارد فرم اصلی شد فرم login بسته بشه اما این اتفاق نمی افته وقتی هم خودم می بندم کلا نرم افزار بته می شه چه کار باید بکنم که login بسته و فرم اصلی باز شه

Rubik360
شنبه 10 بهمن 1388, 10:28 صبح
برای انجام این کار شما 2 راه دارید

1: روش معمول این است که فرم فعلی رو hide و فرم اصلی برنامه رو show میکنند ولی .....
این روش صحیحی نیست

به خاطر این که وقتی یک فرم Hide میشه فقط از چشم ما مخفی شده . اما داره از منابع سیستم استفاده می کنه .


2 : ما باید کاری کنیم که وقتی فرم اول بسته می شه و فرم دوم نشون داده می شه ، فرم اول کامل از حافظه خارج شده باشه .

می دونیم که وقتی فرم parent بسته بشه فرم chaild هم بسته خواهد شد و ما نمیتونیم فرم parent را ببندیم و فرم فرزند باز باشه .

و حتما شما هم فرم اولتون فرم logon هست و فرم دوم فرم اصلی برنامه هستش .

نکته اصلی اینجاست که شما باید برعکس این کار را انجام بدید .

یعنی برنامه اصلی شما باید فرم اول باشه و فرم logon شما فرم دوم باشه .

حالا باید با تغیر کد نویسی در Program.cs باید کاری کنید که فرم دوم اول نشون داده بشه و فرم اول دوم نشون داده بشه

لطفا قبل از پست دادن جستجو کنید

این مربوط به روش اول

http://barnamenevis.org/forum/showthread.php?p=475359

در مورد اشتباه بودن روش اول قبلا بحث شدبا تشکر از اَرژنگ (http://barnamenevis.org/forum/member.php?u=13535) :
http://barnamenevis.org/forum/showthread.php?t=93580

روش بهتر برایه استفاده از فرم لگین با تشکر از اَرژنگ (http://barnamenevis.org/forum/member.php?u=13535):
http://barnamenevis.org/forum/showthread.php?t=94791

اینجا را هم ببین :

http://barnamenevis.org/forum/showthread.php?t=121443

و ......



با تشکر امیدوارم مشکل حل شده باشه

PAIZE 65
شنبه 10 بهمن 1388, 10:38 صبح
حالا باید با تغیر کد نویسی در Program.cs باید کاری کنید که فرم دوم اول نشون داده بشه و فرم اول دوم نشون داده بشه


خوب چطوری این کار رو نجام بدم

Rubik360
شنبه 10 بهمن 1388, 10:59 صبح
اگه فایل program.cs را باز کنید میبیند که نوشته


Application.Run(new Form1());

شما Form1 الان فرم اول است با تغییر میتوانید اجرای ترتیب فرم ها را عوض کنید

حالا با کار کردن با متد ها showdialog میتوانید روند اجرا ها را کنترل کنید

موفق باشید

PAIZE 65
شنبه 10 بهمن 1388, 11:58 صبح
همه اش رو نگاه کردم این کد دستگیرم شد
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(fals e);
LoginForm login = new LoginForm();
if (login.ShowDialog() == DialogResult.OK)
Application.Run(new MainForm());
اما باز هم login رو نمی بنده

Rubik360
شنبه 10 بهمن 1388, 13:16 عصر
با سلام شما باید توسط یک چیزی مقدار DialogResult را برابر ok قرار دهید تا شرط شما برقرار شود

PAIZE 65
یک شنبه 11 بهمن 1388, 10:53 صبح
خوب چطوری باید این کار رو انجام بدم؟:متفکر:

PAIZE 65
سه شنبه 13 بهمن 1388, 09:10 صبح
همه اش رو نگاه کردم این کد دستگیرم شد
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(fals e);
LoginForm login = new LoginForm();
if (login.ShowDialog() == DialogResult.OK)
Application.Run(new MainForm());
اما باز هم login رو نمی بنده

شرط if (login.ShowDialog() == DialogResult.OK بررسی نمیشه چه کار باید بکنم؟

PAIZE 65
چهارشنبه 14 بهمن 1388, 09:11 صبح
this.Close(); رو توی دکمه ورود login هم گذاشتم اما بهش توجهی نمی کنه :ناراحت:

PAIZE 65
شنبه 17 بهمن 1388, 10:43 صبح
this.Close(); رو توی دکمه ورود login هم گذاشتم اما بهش توجهی نمی کنه :ناراحت:



دوستان:متعجب: کمک لطفا

saed2006
شنبه 17 بهمن 1388, 11:13 صبح
شما باید توی فرم login چک کنی اگه یوزر پسورد درست بود
this.colse رو بنویسی و فرم رو ببندی
در غیر این صورت نبندی
همین

PAIZE 65
شنبه 17 بهمن 1388, 11:22 صبح
شما باید توی فرم login چک کنی اگه یوزر پسورد درست بود
this.colse رو بنویسی و فرم رو ببندی
در غیر این صورت نبندی
همین

خوب منهم همین کار رو کردم اما گفتم که بسته نمیشه و روی taskbar هم هست اما رویش هم که کلیک می کنم باز هم نمی شه فقط یک صفحه خالی رو نشون میده که خیلی سریع هم میره زیر فرمها:متعجب: