PDA

View Full Version : مبتدی: چطور بعد از رفتن به صفحه بعد ، صفحه قبل بسته بشه در ویندور فرم ؟



rayson
جمعه 05 آبان 1391, 07:29 صبح
سلام دوستان .
من دارم یک برنامه با زبان سی شارپ مینویسم با ویندوز فرم اپلیکیشن.
همانطور که از موضوع تاپیک پیدا هست زمانی که به صفحه بعد میروم صفحه قبل بسته نمیشه .
اگر ممکنه راهنمایی کنید.

h_assefi
جمعه 05 آبان 1391, 09:07 صبح
سلام دوست عزیز
می تونی یک شی از فرمی که می خوای ببندی توی فرم جدید بسازی و بعد از طریق اون دستور close را فراخونی کنی

form2 f = new form2();
f.Close();

rayson
جمعه 05 آبان 1391, 09:47 صبح
سلام دوست من.
من درون دکمه خودم از کد زیر استفاده کردم اما باز هم جواب نگرفتم.
Form1 f = new Form1();
new Form4().ShowDialog();
f.Close();

harani
جمعه 05 آبان 1391, 10:11 صبح
فرم اصلیو نبند چون ساخت شی ء جدید از آن کار درستی نیست . آن را مخفی کن و از راهنمایی های زیر استفاده کن .
1- کد زیر رو در رویداد کلیلکی که فرم دومت رو فراخوانی میکنی بنویس :

Frorm2 f2 = new Form2();//h
f2.Show();//h
this.hide();//f


در رویداد Form Closing فرم دومتم کد زیر و بنویس :

Application.OpenForms["Form1"].Show();

rayson
جمعه 05 آبان 1391, 10:44 صبح
سلام دوست من ممنون از راهنماییتون.
در رویدادهای چیزی به نام Form Closing وجود ندارد فقط Form_load داره.
دوست عزیز کار این تکه کدکه دادید چی هست دقیقا ؟
Application.OpenForms["Form1"].Show();

h_assefi
جمعه 05 آبان 1391, 10:56 صبح
این روشی که دوست عزیز داری میگی به لحاظ علم برنامه نویسی باعث ایجاد سربار میشه و باعث کند شدن برنامه میشه
hide کردن با close خیلی تفاوت داره . وقتی close می کنی پروسه اون قسمت برنامه بسته میشه و از حافظه خارج میشه اما وقتی hide می کنی پروسه از حافظه خارج نمیشه و بهینه نیست اما برای موقتی کارسازه

boysilent
جمعه 05 آبان 1391, 14:51 عصر
منم hide کردن رو نمیپسندم ولی با close کزدن برنامه کلا بسته نمیشه؟؟؟

rayson
جمعه 05 آبان 1391, 15:56 عصر
دوستان دیتا بیس من اطلاعات ماهانه زیادی باید در خود ذخیره سازی کنه ، برای همین من به دنبال یک راهی میباشم که فشار به برنامه نیاره و سرعت آن را کاهش نده.
اگر دستور Close به نظر شما مناسب هست ، کد مورد نظر رو بی زحمت قرار بدید .
مرسی.

vira1368
جمعه 05 آبان 1391, 19:01 عصر
سلام دوست من ممنون از راهنماییتون.
در رویدادهای چیزی به نام Form Closing وجود ندارد فقط Form_load داره.
دوست عزیز کار این تکه کدکه دادید چی هست دقیقا ؟
Application.OpenForms["Form1"].Show();



در قسمت eventها برای فرم میتونی متد مورد نظر رو پیدا کنی و روش دابل کلیک کنی
عکس داخل ضمیمه رو ببینید

مهرداد صفا
دوشنبه 15 آبان 1391, 22:36 عصر
سلام دوستان .
من دارم یک برنامه با زبان سی شارپ مینویسم با ویندوز فرم اپلیکیشن.
همانطور که از موضوع تاپیک پیدا هست زمانی که به صفحه بعد میروم صفحه قبل بسته نمیشه .
اگر ممکنه راهنمایی کنید.
سلام دوست عزیز
برای نمایش فرمتون از متود Show استفاده کنید.
متود ShowDialog باعث میشود تا فرم به صورت مودال (شبیه یک MessageBox) روی فرم اصلی نمایش داده شود که در این حالت تا زمانی که فرمی را که نمایش دادیم نبندیم فرمانهای بعدی در فرم اصلی اجرا نمیشوند.
موفق باشید.

rayson
دوشنبه 02 بهمن 1391, 17:00 عصر
سلام دوستان ٰ.
من در یک دکمه برای تکست نام کاربریم یک نام و برای تکست رمز عبور یک نام اختصاص دادم من میخوام یک شرط بگذارم که اگه این 2 صحیح وارد شد به صفحه بعد بره با VB بلدم اما با C# نمیدونم به چه صورت باید نوشت امکانش هست کمک کنید .
مرسی .

daneshjo90
سه شنبه 03 بهمن 1391, 02:27 صبح
دوست عزیز از کد زیر استفاده کن ببین به دردت میخوره ؟

if(textbox1.text=="123" && textbox2.text == "علی")
{
main.show();
this.close();
}
else
{
messagebox.show("رمز عبور یا نام کاربری اشتباه است","خطا");
}

در کد بالا:
textbox1 = همان تکست باکس پسورد هست
textbox2 = کادر یوزر نیم یا همان نام کاربری است
main.show = فرم اصلی است که بعد از ورود نمایش داده میشود
this.close = برای بستن فرم جاری استفاده میشود