PDA

View Full Version : مشكل با باز و بسته كردن فرم



barnamenevisjavan
چهارشنبه 30 فروردین 1391, 17:52 عصر
سلام به يه مشكل برخوردم نميتونم فرم رو باز و بسته بكنم

من چندتا فرم دارم كه با زدن يه دكمه فرم ديگه باز ميشه و خودش بسته ميشه از كد زير براي باز كردن فرم جديد و بستن فرم قديم استفاده كردم

Me.Hide()
frmsandog.ShowDialog()
Application.Exit()

حالا توي فرم جديد باز شده با كد زير عمليات بالا رو تكرار ميكنم يعني فرم رو ميبندم و فرم قبلي رو باز ميكنم
يه متغير هم تعريف كردم براش

Public frmlstback As New Form1

Me.Close()
frmlstback.ShowDialog()
Application.Exit()

اين كد براي يكبار كار ميكنه ولي وقتي براي بار دوم فرم جديد رو باز ميكنه برنامه وقتي كليك ميكنم كه به فرم قبلي برگرده برنامه كلا خارج ميشه و پايان ميابه
مشكل كد چيه؟
لطفا يه كد بهم بديد كه بتونم بدون درد سر هرچقد كه ميخوام فرم جديد رو باز كنم(فرم قديم بسته بشه) و از اون فرم قديم رو باز بكنم(فرم جديد بسته بشه)

کاظم فلاحی خواه
چهارشنبه 30 فروردین 1391, 17:55 عصر
فقط از Application.Exit() استفاده نکنید مشکل حل میشه .

Hybrid
چهارشنبه 30 فروردین 1391, 21:47 عصر
سلام ،

شما روش اشتباهی رو دارین میرین ، اگه دقت کنید در کد زیر :


Me.Hide()
frmsandog.ShowDialog()
Application.Exit

شما فرم اول ( ME ) رو نمیبندین و فقط اونو Hide میکنین در حالی که این روش اشتباه . در پنجره ی Solution Explorer رو My Project کلیک کن و در پنجره ی ظاهر شده خاصیت ShutDownMode رو برابر When last form closes بزار. سپس میتونین به شکل زیر فرم دوم رو ببندید و فرم دوم رو نمایش بدین.


Dim frm2 As New Form2
frm2.Show()
Me.Close()

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

zaeimh90
چهارشنبه 30 فروردین 1391, 21:55 عصر
عزیز نظر من اینه که از خاصیت visible استفاده کنی.
مشکل استفاده از showdialog اینه که وقتی فرم رو میسازی یک hwnd رو روی ram میسازه که اگر دوباره showdialog کنی خطا میده باید برای بار دوم از گزینه show استفاده کنی.
یعنی باید یک بار showdialog بشه بعد show بشه.
ولی بازم به نظر من از visible استفاده کن. یعنی میخوای نشون بدی true کن و اگر هم نه که false کن.

barnamenevisjavan
دوشنبه 04 اردیبهشت 1391, 12:07 عصر
ممنون ولي من تونستم با نوشتن يه تابع و معرفي يه متغير تو هركدوم از توابع مشكل رو حل كنم با تشكر

ROSTAM2
دوشنبه 04 اردیبهشت 1391, 15:20 عصر
اگه به پراپرتیس پروژه یه سر می زدی تنظیماتی داره واسه نحوه خروج برنامه برا خروج با آخرین پنجره ای که بسته می شه تنظیم می کردی مشکلت حل می شد اینقد دردسرم نمی کشیدی