Nine MVP's Blog

22/06/2006

จะป้องกันการซ้ำกันของ MDI Form ใน VS 2003 ทำยังงัยดี

Filed under: Computers and Internet — Nine MVP @ 8:08 am
ลอง demo ง่าย ๆ นะ

เวลาใช้ก็แค่ 2 บรรทัดครับ
 
Class FormManager
 
 Public Class FormManager

    Private fMDI As Form

    ‘ส่ง MDI Form เข้ามา

    Public Sub New(ByVal mdiF As Form)

        fMDI = mdiF

    End Sub

    ‘สั่ง active form ที่ต้องการ

    Public Function ActiveForm(ByVal af As Form) As Boolean

        ‘หา form ที่ active อยู่ใน MDI

        For Each f As Form In fMDI.MdiChildren

            ‘ถ้าเจอ type เดียวกันเปิดอยุ่

            If f.GetType Is af.GetType Then

                ‘ให้ active ขึ้นมาโชว์

                f.Activate()

                GC.ReRegisterForFinalize(af)

                Return True

            End If

        Next

        ‘ถ้าไม่เจอ ให้ส่งเข้าไปเป็น child ของ MDI และ show ขึ้นมา

        af.MdiParent = fMDI

        af.Show()

        Return False

    End Function

End Class

 

HowTo Use
 
ที่ MDI Form ใส่ code นี้ จะเป็นการสร้าง instance ของ FormManager พร้อมทั้งส่ง MDI ที่จะทำงานเข้าไป

Private fm As New FormManager(Me)

 

และที่ปุ่ม menu ตอนจะเรียก form เช่น เราต้องการจะเรียก ProductForm จาก Menu Product ก็สั่งแค่ นี้ครับ

fm.ActiveForm(New ProductForm)

Leave a Comment »

No comments yet.

RSS feed for comments on this post. TrackBack URI

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Blog at WordPress.com.

%d bloggers like this: