View Full Version : Unload Form
mahdyeh
شنبه 31 مرداد 1388, 00:27 صبح
سلام
می خوام بعد از یک ٍانیه splash ام بسته بشه و فرم دیگه ام باز بشه
Private Sub frmSplash_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Timer1.Interval = 1000
End Sub
Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Me.Visible = False
frmBook.Show()
Timer1.Enabled = False
End Sub
Me.Visible = False اینجاش درسته ؟؟؟!!!
آخه توی vb6 می نوشتیم Unload Me
که اینجا نمیشه به این طریق نوشت
close هم که اینجا جای End هستش تو vb6 که از کل برنامه خارج میشه
;
alimanam
شنبه 31 مرداد 1388, 01:13 صبح
با سلام
خوب حالا مشکلتون چیه ؟ با کدی که نوشتین فرم Splash مخفی میشه و فرم اصلی برنامه شما نمایش داده میشه . فقط یادتون باشه که در رویداد FormClosing برنامه رو به صورت کلی ببندین .
Application.Exit()
ali_md110
شنبه 31 مرداد 1388, 02:27 صبح
سلام
فرض کنیم یک فرم لوگین داریم یا یک فرم اسپلش
توی فرم دوم یا اصلی یا همون فرمی که میخوای بعد از بسته شدن فرم اسپلش ظاهر بشه که معمولا یک فرم mdiparent هست یک سابروتین بنویس و توی ساب سازنده فرم صداش بزنید
Private Sub ShowloginForm()
Dim frm As New FrmLogin()
frm.ShowDialog()
End Sub
Public Sub New()
InitializeComponent()
ShowloginForm()
End Sub
اولین فرمی که باید توی پروژتون اجرا بشه رو فرم mdi قرار بده
موفق باشید
saeedr22
شنبه 31 مرداد 1388, 03:38 صبح
اولاً اینکه شما میتونین تو project propertice فرمی که قرار ه اول اجرا بشه رو انتخاب کنین.
دوماً می تونین با formspla.hide فرم رور ببندید بدون اینکه از برنامه خارج بشین.
Hossis
شنبه 31 مرداد 1388, 06:19 صبح
با عرض پوزش از بقیه کاربران باید بگم همه این جواب ها زحمت اضافی هست
فقط کافیه در پنجره خصوصیات پروژه (Project Properties) فرم شروع را مشخص کنید یعنی همان فرمی که بعد از اسپلش قراره ظاهر بشه
بعد در پائین همون پنجره ، یک کادر برای معرفی فرم اسپلش هست که اسپلش رو از اون لیست انتخاب می کنید
با اجرای برنامه ، فرم اسپلش نشون داده می شه و تا زمانی که به طور کامل فرم اصلی لود نشده، فرم اسپلش دیده خواهد شد.
اگر هم بخواهید از روش دیگری استفاده کنید، باید اول فرم اسپلش بار بشه و با استفاده از تایمر ، فرم اصلی ابتدا لود شده و سپس فرم اسپلش به طور کامل بسته بشه
به شرطی که در خصوصیات پروژه تعیین کرده باشید که برنامه با بستن آخرین فرم بسته بشه
در کل روش اول بهتر و هوشمند تره
mahdyeh
شنبه 31 مرداد 1388, 11:25 صبح
سلام
وقت بخیر !
ممنون از توجه و جواب همه
alimanam (http://www.barnamenevis.org/forum/member.php?u=43498)
با سلام
خوب حالا مشکلتون چیه ؟ با کدی که نوشتین فرم Splash مخفی میشه و فرم اصلی برنامه شما نمایش داده میشه . فقط یادتون باشه که در رویداد FormClosing برنامه رو به صورت کلی ببندین .
کد:
Application.Exit()
این کد :
Application.Exit()
زمانی اجرا میشه که از فرمم خارج میشم ، منم همین رو می خوام ولی خارج نمیتونم بشم که:ناراحت: فقط visible اش رو غیر فعال میکنم
saeedr22 (http://www.barnamenevis.org/forum/member.php?u=79256)
اولاً اینکه شما میتونین تو project propertice فرمی که قرار ه اول اجرا بشه رو انتخاب کنین.
دوماً می تونین با formspla.hide فرم رور ببندید بدون اینکه از برنامه خارج بشین.
اولا : از project propertice ،من StartUp Form رو تنظیم کرده ام
دوما : نمیخوام hide کنم فرمم رو >> می خوام کلا فرم Splash بسته بشه
اگر هم بخواهید از روش دیگری استفاده کنید، باید اول فرم اسپلش بار بشه و با استفاده از تایمر ، فرم اصلی ابتدا لود شده
ok همین کار ...
سپس فرم اسپلش به طور کامل بسته بشه
آهان ، همین جاش مشکله منه که چه کدی رو باید جایگذین ِ Me.Visible = False تا فرم splash م بسته بشه ؟؟؟
به شرطی که در خصوصیات پروژه تعیین کرده باشید که برنامه با بستن آخرین فرم بسته بشه
چطوری اونوقت ؟؟؟
;
Hossis
شنبه 31 مرداد 1388, 11:38 صبح
آهان ، همین جاش مشکله منه که چه کدی رو باید جایگذین ِ Me.Visible = False تا فرم splash م بسته بشه ؟؟؟
بنویسید
me.close
چطوری اونوقت ؟؟؟
فرم کاملا بسته می شه
اگر فرم اسپلش فرم شروع باشه، با بستن اون ،برنامه بسته می شه یعنی خارج می شه
اما اگر بستن پروژه رو به بستن آخرین فرم منوط کنید، فرم اصلی باز شده و برنامه به کار خود ادامه می ده
به قسمت قرمز شده نگاه کنید، به طور پیشفرض با بستن اولین فرم بسته می شه
در قسمت آبی رنگ هم فرم اصلی به عنوان شروع انتخاب شده
در قسمت سبز هم می تونید بنابه روش اولی که گفتم ، اسپلش رو انتخاب کنید
http://barnamenevis.org/forum/attachment.php?attachmentid=35700&stc=1&d=1250926450
Hossis
شنبه 31 مرداد 1388, 11:41 صبح
اما استفاده از تایمر به این خاطره که فرم اسپلش به خودی خود که بسته نمی شه ،باید رویدادی اتفاق بیفته که معمولا در اسپلش ها می خواهند بعد از یک مدت زمان کوتاه فرم بسته بشه که این کار با تایمر صورت می گیره
شما می تونید بستن این فرم رو بعد از رویداد لود فرم اصلی انجام بدید ، فرقی نمی کنه
mahdyeh
شنبه 31 مرداد 1388, 11:54 صبح
بنویسید
me.close
فرم کاملا بسته می شه
اگر فرم اسپلش فرم شروع باشه، با بستن اون ،برنامه بسته می شه یعنی خارج می شه
اما اگر بستن پروژه رو به بستن آخرین فرم منوط کنید، فرم اصلی باز شده و برنامه به کار خود ادامه می ده
به قسمت قرمز شده نگاه کنید، به طور پیشفرض با بستن اولین فرم بسته می شه
در قسمت آبی رنگ هم فرم اصلی به عنوان شروع انتخاب شده
در قسمت سبز هم می تونید بنابه روش اولی که گفتم ، اسپلش رو انتخاب کنید
مرســی
درست شد
من قسمت آبی (startup) رو Splash انتخاب می کردم
توی قسمت سبز هم (Splash Screen) دنبال splash بودم که نبودش
خیلی ممنون که انقدر حوصله به خرج میدین که کاملا متوجه سوال میشین و جواب میدین
ولی یه چیزی
اینطوری که بدون تایمر هست و زود بسته میشه ...
شما می تونید بستن این فرم رو بعد از رویداد لود فرم اصلی انجام بدید ، فرقی نمی کنه
واا مگه میـــشه ؟؟؟
یعنی فرم اصلی ام لود بشه
وتازه مثلا بعد از 2 ثانیه اسپلشم بسته شه ؟؟؟
این تیکه کد من هستش توی frmSplash
Private Sub frmSplash_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Timer1.Interval = 3000
End Sub
Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Me.Close()
frmBook.Show()
Timer1.Enabled = False
End Sub
با قسمت قرمز مشکل دارم
Hossis
شنبه 31 مرداد 1388, 14:19 عصر
واا مگه میـــشه ؟؟؟
یعنی فرم اصلی ام لود بشه
وتازه مثلا بعد از 2 ثانیه اسپلشم بسته شه ؟؟؟
در این صورت باید تایمر رو در فرم اصلی قرار بدید، بعد از لود شدن کامل اون( در انتهای form_load) تایمر رو فعال کنید و در رویداد تیک اون ، کد بستن اسپلش رو بنویسید
منتها این در روش دوم هست نه اول ،در روش اول اتوماتیک فرم بسته می شه
Hossis
شنبه 31 مرداد 1388, 14:21 عصر
با قسمت قرمز مشکل دارم
اون خط رو باید بعد از خط اول بیارید یعنی باید بعد از نمایش فرم اصلی ، اسپلش بسته بشه
در ضمن نگفتید مشکل و خطای اون خط چیه؟
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.