PDA

View Full Version : چرا Me.Hide داخل رویداد LOAD کار نمی کنه ؟؟



hamed_blooki
دوشنبه 17 تیر 1392, 18:08 عصر
می خواستم برنامه ای بنویسم که وقتی رویداد load یا Activate اجرا میشه فرم مخفی بشه و لی کار نکرد

همین کد رو داخل یه دگمه (Button ) نوشتم کار کرد, می خواستم دلیل و منطق این عملیات رو بدونم ؟؟

Me.hide()

httplistener
دوشنبه 17 تیر 1392, 19:21 عصر
می خواستم برنامه ای بنویسم که وقتی رویداد load یا Activate اجرا میشه فرم مخفی بشه و لی کار نکرد

همین کد رو داخل یه دگمه (Button ) نوشتم کار کرد, می خواستم دلیل و منطق این عملیات رو بدونم ؟؟

Me.hide()


سلام.
دوست من قبل از اینکه لود فرم کامل بشه فرم خودش مخفی هست و لازم نیست شما اون رو مخفیش بکنید.
برای نمونه اگر شما کادر پیام رو در رویداد لود فروم نشون بدید خواهید دید که بعد از اینکه روی OK کلیک می کنید فرمتون ظاهر میشه.پس اصولا این کاری که می کنید معنایی نداره.
اگر شما می خواید برنامه تون رو مخفی کنید می تونید از به شکل زیر عمل کنید :


Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.WindowState = FormWindowState.Minimized
Me.ShowInTaskbar = False
End Sub

اما اگه اصرار دارید فرم رو مخفی کنید :

Me.Opacity = 0

پیروز باشید

hamed_blooki
دوشنبه 17 تیر 1392, 19:36 عصر
ممنون از بابت پاسخ

البته در رویداد Shown دستور

Private Sub OK_Shown(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Shown
Me.Hide()

End Sub
کار می کنه و البته روش دیگه ای هم وجو داره :

کد زیر :




Private Sub OK_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

Me.Hide()
Me.ShowInTaskbar = False
End Sub

httplistener
دوشنبه 17 تیر 1392, 20:12 عصر
با سلام مجدد،خواهش میکنم


ممنون از بابت پاسخ

البته در رویداد Shown دستور

Private Sub OK_Shown(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Shown
Me.Hide()

End Sub




بله.یادم نبود.و البته خوب معلومه چرا اینجا کار میکنه،چون رویداد لود به پایان رسیده،و این کد بعد نمایش فرم اجرا میشه.
اما


کار می کنه و البته روش دیگه ای هم وجو داره :

کد زیر :




Private Sub OK_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

Me.Hide()
Me.ShowInTaskbar = False
End Sub


فکر نمی کردم این کار کنه،تست کردم ودیدم کار کرد،برا منم عجیبه،من بیش تر با C#‎ کار میکنم و اونجا معادل همین کد فرم رو مخفی نمیکنه :متفکر:

this.Hide();
this.ShowInTaskbar = false;

Mani_rf
دوشنبه 17 تیر 1392, 22:35 عصر
می خواستم برنامه ای بنویسم که وقتی رویداد load یا Activate اجرا میشه فرم مخفی بشه و لی کار نکرد

Me.hide()

متد Formshow بعد از به اتمام رسیدن FormLoad صدا زده می شود. بنابراین اگر بخواید فرم رو تو FormLoad مخفی کنید عمل مورد نظر شما رو انجام نمیده. برای اینکه فرم بعد از لود شدن نمایشد داده نشود کد Me.Hide رو داخل رویداد FormShown بنویسید.

Private Sub Form1_Shown(sender As Object, e As EventArgs) Handles Me.Shown
Me.Hide()
End Sub

hamed_blooki
سه شنبه 18 تیر 1392, 10:46 صبح
با سلام مجدد،خواهش میکنم



بله.یادم نبود.و البته خوب معلومه چرا اینجا کار میکنه،چون رویداد لود به پایان رسیده،و این کد بعد نمایش فرم اجرا میشه.
اما



فکر نمی کردم این کار کنه،تست کردم ودیدم کار کرد،برا منم عجیبه،من بیش تر با C#‎‎‎ کار میکنم و اونجا معادل همین کد فرم رو مخفی نمیکنه :متفکر:

this.Hide();
this.ShowInTaskbar = false;


اتفاقا من همین کد رو در سی شارپ نوشتم و کاملا جواب گرفتم 100% صحیح