รวบรวม Code ต่างๆนานา ที่เคยพบเจอมาจากประสบการณ์

UNDERGROUND PROGRAMMER PRESENT

วันอังคารที่ 22 สิงหาคม พ.ศ. 2560

VB.NET Code#1 Addhandler Object As Event, Object As Delegate

ว่าด้วยเรื่องของการเขียนโปรแกรม แน่นอนว่ามันก็เป็นได้ในหลายรูปแบบหลายทิศทาง หลายเครื่องมือ หลายภาษา 😵

มันก็แน่นอนอยู่แล้วว่า ขึ้นอยู่กับบุคคลว่าถนัดอะไร จะใช้อย่างไรให้เหมาะ ซึ่งก็แล้วแต่งานแล้วแต่คนละ


เอาเป็นว่าสำหรับผมถนัดมากที่สุดก็คงเป็น VB.net นี้ละก็เล่นใช้ตัวนี้ทำมาหากินมาที่สุดละนะ ซึ่งบทความนี้ก็ตั้งใจจะรวบรวม Code ต่างๆ ที่ได้ประสบพบเจอมา เอาไว้ละกัน

เอาละมีไรบ้างนะ 😀

1. Addhandler Object As Event, Object As Delegate

มันคืออะไรหว่า? 😶

เอางี้ละกันหากเราทำโปรแกรม แล้วมีปุ่มสัก 100 ปุ่ม (ความจริงมันคงไม่เยอะขนาดนั้นหรอกมั้ง...) เวลาเขียน Code เพื่อจะให้ปุ่มนัั้นทำในสิ่งที่เราต้องการ เอาง่ายๆละกัน Event Click แน่นอนเลยว่าที่เรียนๆ กันมาก็คือ ดับเบิ้ลคลิกที่ปุ่มไปโลด จากนั้นก็ก้มหน้าก้มตา เขียนอะไรที่ต้องการให้เป็นลงใน Event นั้นเลย

 Private Sub tsbtn_01_Click(sender As System.Object, e As System.EventArgs) Handles tsbtn_01.Click
      TextBox01.Text = "1"
 End Sub
 Private Sub tsbtn_02_Click(sender As System.Object, e As System.EventArgs) Handles tsbtn_02.Click
      TextBox01.Text = "2"
 End Sub
.
.  
.
 Private Sub tsbtn_100_Click(sender As System.Object, e As System.EventArgs) Handles tsbtn_100.Click
      TextBox01.Text = "100"
 End Sub

----- คิดขึ้นได้ อ้าวเฮ้ย!!! มันผิดนี้หว่า มันต้อง TextBox02 😱😱😱 ตายละมีตั้ง 100 ปุ่มตามแก้กันบานเลย  HELP ME PLEASE....

เอาละมาเขียนใหม่ละกัน โดยใช้ Addhandler Object As Event, Object As Delegate
มันจะออกมาอย่างไงนะ

'ใส่ตรง Event Form_Load
AddHandler Me.tsbtn_01.Click, AddressOf BTN_Click
AddHandler Me.tsbtn_02.Click, AddressOf BTN_Click
.
.
AddHandler Me.tsbtn_100.Click, AddressOf BTN_Click

----------------------------------------------------------------------------------------------------------------------
Private Sub BTN_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
        Dim _Charector As String
        Dim _btn As Button
        _btn = DirectCast(sender, Button)

        Select Case _btn.Name
              Case "tsbtn_01":_Charector ="1"
              Case "tsbtn_02":_Charector ="2"
              .
              .
              Case "tsbtn_100":_Charector ="100"
        End Select
        TextBox02.Text =_Charector 
End Sub

😆 แบบนี้คงดีกว่าเนอะ จะแก้อะไรในปุ่ม ก็ที่เดียวเลย หรืออยากจะเพิ่มปุ่มก็ ยัดข้างบนไปโลด

**** นิดหนึ่ง
        Dim _btn As Button
        _btn = DirectCast(sender, Button)
บางคนอาจใช้เป็น
       _btn =  Ctype(sender, Button)

ถามว่าใช้ได้ไหม ตอบเลย ใช้ได้เหมือนกันแหละ แต่  DirectCast() จะเคร่งครัดในการเปลี่ยนแปลงชนิดมากกว่า CType()

    Dim _value1 As Interger = DirectCast("1",Interger)  'อันนี้ Compile  บ่ผ่านแน่นอน

    Dim _value1 As Integer = CType("1", Integer)


-------- เอาละผ่านไปหนึ่งเรื่อง แล้วพบกันใหม่ในบทความต่อไปเน้อ😎


ไม่มีความคิดเห็น:

แสดงความคิดเห็น