PDA

View Full Version : طريقه باز كردن فرم دوم و سپس برگشت به فرم اول



hrkamali
سه شنبه 02 شهریور 1389, 22:05 عصر
لطفا راهنمايي كنين كه براي نوشتن برنامه زير چكار بايد كرد
در فرم اول برنامه مي خواهيم با زدن يك كليد فرم دوم نمايش داده شده و فرم اول مخفي بشه، سپس با زدن كليدي كه روي فرم دوم هست فرم دوم مخفي و فرم اول آشكار بشه.
با تشكر.

صباح فتحی
سه شنبه 02 شهریور 1389, 22:12 عصر
قبلش یه سرچ توسایت میکردید بهتربود..اینم برنامش

hrkamali
چهارشنبه 03 شهریور 1389, 13:10 عصر
سلام. راه حل شما به اين صورت بود كه با زدن كليد روي فرم اول كد زير اجرا بشه:

Form2 f2=new form2
f2.show
this.hide

و با زدن كليد روي فرم دوم كد زير اجرا بشه:

Form1 f1=new form1
f1.show
this.hide

اشكالش اين هست كه با اين كار دائما فرم جديد ساخته ميشه در حاليكه فرمهاي قبلي وجود دارند و بسته نشدند و فقط مخفي شدند.اينكار حافظه رو اشغال ميكنه. عيب ديگيرش اين هست كه اگر فرضا روي فرم اول مون يه textbox داشته باشيم و موقع اجرا يه مقداري تو اون بزنيم و سپس طبق روش گفته شده به فرم دوم بريم و بعد به فرم اول برگرديم ديگه اون مقداري كه قبلا تو textbox زده بوديم از بين ميره و خالي نمايش داده ميشه.
آيا راهي هست كه فقط يك بار فرمها ايجاد بشن و سپس اونها رو مخفي يا آشكار كنيم. به عبارتي راهي هست كه وقتي كليد روي فرم دوم رو مي زنيم فرم اول بدون اينكه دوباره ساخته بشه نمايش داده بشه؟

mmd2009
چهارشنبه 03 شهریور 1389, 13:16 عصر
با سلام

دوتا فرم باز کن هر کدوم یک دکمه داشته باشن.

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



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


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



this.Close();
Application.OpenForms["form1"].Show();


مشکلت حل میشه...

hrkamali
چهارشنبه 03 شهریور 1389, 18:08 عصر
سلام.
از جواب و راه حلتون ممنونم.
كار كرد.
حالا يه سوال ديگه:اگه روي فرم اول يه textbox باشه و بعد با زدن يه كليد فرم دوم باز بشه، چطوري داخل فرم دوم مقدار textbox اي كه روي فرم اول هست رو به دست بياريم؟
اگه راهنمايي كنين متشكر ميشم.

Reza_Yarahmadi
چهارشنبه 03 شهریور 1389, 22:51 عصر
تو دکمه فرم اولی اینو بنویس :

کد PHP:

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


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

کد PHP:

this.Close();
Application.OpenForms["form1"].Show();


مشکلت حل میشه...
این روش درسته کار میکنه ولی مشکلات بیشتری تولید میکنه( توی چند تاپیک در موردش بحث شده)
برای کاری که شما میخواید انجام بدید ساده ترین روش اینه که بصورت زیر عمل کنید

Form2 f2 = new Form2();
Hide();
f2.ShowDialog();
Show();
توی این روش دیگه نیازی نیست بدونید کدوم فرم Form2 رو نمایش میده که به اون برگردید.
برای پیدا کردن روشهای دیگه میتونید یه جستجو توی سایت کنید.


حالا يه سوال ديگه:اگه روي فرم اول يه textbox باشه و بعد با زدن يه كليد فرم دوم باز بشه، چطوري داخل فرم دوم مقدار textbox اي كه روي فرم اول هست رو به دست بياريم؟
http://barnamenevis.org/forum/showthread.php?t=91138
http://barnamenevis.org/forum/showthread.php?t=213787
http://barnamenevis.org/forum/showthread.php?t=239955
http://barnamenevis.org/forum/showthread.php?t=230305
http://barnamenevis.org/forum/showthread.php?t=225703
اینها انواع سؤالات در مورد انتقال و یا دسترسی به اطلاعات فرم دیگه است (کمتر از 1 دقیقه وقت برد!!)