مخفی کردن فروم در vb.net

سلام:
با Form1.Visible = False یا me.hide() در رویداد لود فروم نمیشه فروم رو ناپدید کرد باید این کدها در رویداد شو فروم نوشته شود

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

دوما میخواستم ببینم در بدنه رویداد فروم لود چه طوری میتونم رویداد شو فروم رو اجرا کنم یعنی میخوام در کد لود فروم از رویداد show فروم استفاده کنم م بتونم دستورات وتوابع یا روالهای شو رو در لود استفاده کنم
 

the_king

مدیرکل انجمن
سلام:
با Form1.Visible = False یا me.hide() در رویداد لود فروم نمیشه فروم رو ناپدید کرد باید این کدها در رویداد شو فروم نوشته شود

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

کد:
[COLOR="#A9A9A9"]    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load[/COLOR]
        FormBorderStyle = FormBorderStyle.SizableToolWindow
        ShowInTaskbar = False
        Location = New Point(-30000, -30000)
[COLOR="#A9A9A9"]    End Sub[/COLOR]

دوما میخواستم ببینم در بدنه رویداد فروم لود چه طوری میتونم رویداد شو فروم رو اجرا کنم یعنی میخوام در کد لود فروم از رویداد show فروم استفاده کنم م بتونم دستورات وتوابع یا روالهای شو رو در لود استفاده کنم
Show یا Shown ؟ رخداد ها در زمان مشخص خودشون اجرا می شوند، مادامی که فرم نمایش داده نشده Shown رخ نمیده. در رخداد Load فرم آماده نمایش میشه، هنوز به مرحله نمایش نرسیده.
می توانید مشخص کنید که در هنگام Shown چه کار هایی انجام بشه اما به هر حال رخداد Shown زمان نمایش فرم اجرا می شوند.

کد:
[COLOR="#A9A9A9"]    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load[/COLOR]
        AddHandler Shown, AddressOf ShownSample
[COLOR="#A9A9A9"]    End Sub[/COLOR]

    Private Sub ShownSample(ByVal sender As System.Object, ByVal e As System.EventArgs)
        BackColor = Color.Red
    End Sub
 
ببخشین اگه سوالام ابتداین.تازه شروع کردم.

اون روال

PHP:
ShownSample


از روتینهای خود برنامه هست یا ما مینویسیم.چون ارور داد و تو لیست رویدادها هم چیزی به این اسم نبود

و سوال دیگه .من یک کلاس ساختم با یک فیلد که یک متغیر هست

[PHPPublic Class tazekar
Public motaghayer As Integer
End Class][/PHP]
الان میام تویک باتن این جوری مقدار دهی میکنم

PHP:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim a As New tazekar
        Dim b As Integer

        b = a.motaghayer = 10
        MsgBox(b)
    End Sub
ومسیج باکس میکنم.اما اشتباهی عدد صفر نشون میده هر چی نگاه میکنم منطق کد درسته پس چرا این جوری میشه البته میدونم اگه مقدار


PHP:
a.motaghayer = 10

تو متغیر نریزم درست کار میکنه
 
آخرین ویرایش:

the_king

مدیرکل انجمن
ببخشین اگه سوالام ابتداین.تازه شروع کردم.

اون روال

PHP:
ShownSample


از روتینهای خود برنامه هست یا ما مینویسیم.چون ارور داد و تو لیست رویدادها هم چیزی به این اسم نبود
خودتون می نویسید، نمونه کدش رو هم براتون نوشته بودم (رنگ آبی)

کد:
[COLOR="#A9A9A9"]    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load[/COLOR]
        AddHandler Shown, AddressOf ShownSample
[COLOR="#A9A9A9"]    End Sub[/COLOR]

[COLOR="#0000FF"]    Private Sub ShownSample(ByVal sender As System.Object, ByVal e As System.EventArgs)
        BackColor = Color.Red
    End Sub[/COLOR]
و سوال دیگه .من یک کلاس ساختم با یک فیلد که یک متغیر هست

[PHPPublic Class tazekar
Public motaghayer As Integer
End Class][/PHP]
الان میام تویک باتن این جوری مقدار دهی میکنم

PHP:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim a As New tazekar
        Dim b As Integer

        b = a.motaghayer = 10
        MsgBox(b)
    End Sub
ومسیج باکس میکنم.اما اشتباهی عدد صفر نشون میده هر چی نگاه میکنم منطق کد درسته پس چرا این جوری میشه البته میدونم اگه مقدار


PHP:
a.motaghayer = 10

تو متغیر نریزم درست کار میکنه
یکسری عملیاتی مثل انتصاب های زنجیر وار در زبان هایی مثل ++C مرسوم ئه، اما در ویژوال بیسیک قابل اجرا نیست.
شما یکبار بجای کد خودتون همچین کدی رو امتحان کنید، مقدار b برابر 1- خواهد شد که لابد اصلا انتظارش را ندارید :
کد:
        b = a.motaghayer = 0

منطق کد درسته، مقداری که بهتون میده هم درسته، صرفا تصوری که از عملگر = دوم دارید اشتباهه، شما همچین کدی دارید :
کد:
        b = a.motaghayer = 10
که معادل این است :
کد:
        b = (a.motaghayer = 10)
آن عملگر = دوم عملگر مقایسه است، عملگر انتصاب مقدار نیست، هیچ مقداری هم در a.motaghayer نمی نویسد، صرفا مقایسه می کند که آیا مقدار a.motaghayer برابر 10 است یا خیر،
اگر برابر باشد مقدار True که معادل عددی 1- است را بر می گرداند و اگر برابر نباشد مقدار False که معادل عددی 0 است را بر می گرداند.
کامپایلر روی کد خطا نمی گیرد چون مقادیر True / False بدون مشکل به عدد تبدیل می شوند، از دید کامپایلر منطقی است.
شما باید همچین کدی را بنویسید، انتصاب های زنجیر وار ننویسید :
کد:
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim a As New tazekar
        Dim b As Integer
        a.motaghayer = 10
        b = a.motaghayer
        MsgBox(b)
    End Sub
 
خیلی ممنون از توضیحتون.البته نیازی نیست فقط خواستم بگم این کد

PHP:
Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        AddHandler Shown, AddressOf ShownSample
    End Sub
    Private Sub ShownSample(ByVal sender As System.Object, ByVal e As System.EventArgs)
        BackColor = Color.Red
    End Sub
End Class


فقط رنگ فروم روقرمز میکنه همین.از جوابهای کاملتون واقعا ممنونم
 

the_king

مدیرکل انجمن
خیلی ممنون از توضیحتون.البته نیازی نیست فقط خواستم بگم این کد

PHP:
Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        AddHandler Shown, AddressOf ShownSample
    End Sub
    Private Sub ShownSample(ByVal sender As System.Object, ByVal e As System.EventArgs)
        BackColor = Color.Red
    End Sub
End Class


فقط رنگ فروم روقرمز میکنه همین.از جوابهای کاملتون واقعا ممنونم

بله، خواستم یک مثال بزنم که اگر بخواهید کاری در رخداد Shown انجام بشه در هنگام Load شدن صرفا می توانید روتینش را مشخص کنید. در خود Load اجرا نخواهد شد.
 

جدیدترین ارسال ها

بالا