อยากดูดวงฟรีๆ มาที่นี่ มหาหมอดูดอทคอม ดูดวงฟรี 24 ชั่วโมง



รู้จักับโฟกัส (Focus) ของคอนโทรล
กลับเมนูหลัก
 

       โฟกัสเป็นสิ่งที่ใช้บ่งบอกว่า คอนโทรลใดบนฟอร์มกำลังตอบสนองต่อการใส่ข้อมูลของผู้ใช้อยู่
เราสามารถเปลี่ยนโฟกัสไปยังคอนโทรลต่างๆ ได้โดย
       1. เลือกคอนโทรลที่ต้องการให้ถูกรับโฟกัสโดยการกด <Tab> ไปยังคอนโทรล, คลิกเมาส์ หรือกดคีย์ลัด (ShortCut) ไปยังคอนโทรลนั้นๆ
       2. ใช้เมดถอด Focus ของคอนโทรลที่ต้องการถูกรับโฟกัส จากคำสั่ง

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
      TextBox1.Focus()
End Sub

คอนโทรลที่ได้รับโฟกัสจะมีเส้นกรอบล้อมรอบ

       ตัวอย่างโปรแกรมเกี่ยวกับโฟกัสของคอนโทรล (FogusDemo)
ขั้นตอนการสร้างโปรแกรม

1. เลือกโปรเจ็กต์ Windows Application แล้วกำหนดคุณสมบัติดังตาราง

ชนิดคอนโทรล
คุณสมบัต
ค่าที่กำหนดให้
คำอธิบาย
Form Name Form1 ชื่อฟอร์ม
TextBox  Name TextBox1 ชื่อเท็กบ็อกซ์
Text "" ข้อความที่กำหนดให้เท็กบ็อกซ์
TextBox  Name TextBox2 ชื่อเท็กบ็อกซ์
Text "" ข้อความที่กำหนดให้เท็กบ็อกซ์

2. ใส่คำสั่งโปรแกรมลงไปใน Code Editor

Private Sub TextBox1_Leave(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.Leave
      If Not IsNumeric(TextBox1.Text) Then
           MsgBox("You must enter numeric value.", MsgBoxStyle.OKOnly)
           TextBox1.Focus()
      End If
End Sub

3. รันโปรแกรมที่สร้างมาจะได้ผลลัพธ์

       การกำหนดลำดับการเลื่อนโฟกัส (Tab Order)
       เมื่อกดปุ่ม <Tab> จะมีการเลื่อนโฟกัสจากคอนโทรลหนึ่งไปยังอีกคอนโทรลหนึ่งบนฟอร์ม เราสามารถกำหนดลำดับในการเลื่อนโฟกัสผ่านทางคุณสมบัติ TabIndex ซึ่งปกติ VB.NET จะกำหนดให้ลำดับในการเลื่อนโฟกัสปยังคอนโทรลต่างๆ เรียงตามลำดับที่เราสร้างขึ้นในตอนออกแบบโปรแกรม

       เราสามารถทำให้คอนโทรลไม่สามารถรับโฟกัสได้ โดยกำหนดคุณสมบัติ TabStop ของคอนโทรลให้เท่ากับ False
       การกำหนดลำดับการเลื่อนโฟกัสให้กับคอนโทรล ให้เเลือกเมนู View > Tab Order ซึ่งบนคอนโทรลแต่ละตัวจะขึ้นหมายเลข Tab Order ให้เราคลิกเมาส์บนคอนโทรล ตามลำดับ Tab Order ที่เราต้องการ

:: ไทเมอร์Timer
       ไม่ได้เรียกว่า Control แต่เรียกว่า Component เพราะตัวมันไม่ได้แสดงให้ User เห็น ให้เลือกจาก Tab Components
       จุดประสงค์ของการใช้ไทเมอร์คือ ให้มีการทำงานบางอย่างทุก ๆ ช่วงเวลาที่เรากำหนด ซึ่งจะช่วยให้การทำงานบางอย่างถูกทำแบบฉากหลังพร้อมกับมีโปรแกรมอื่นทำงานอยู่ด้วย

       คุณสมบัติที่สำคัญของไทเมอร์

ชื่อคุณสมบัติ
คำอธิบาย
Interval เป็นคุณสมบัติที่บอกว่าต้องการให้เกิดอีเว็นต์ Tick เว้นช่วงเวลาห่างกันเท่าไร
Enabled เป็นคุณสมบัติที่บอกว่า ไทเมอร์นี้ทำงานได้

       อีเว็นต์ที่สำคัญของไทเมอร

ชื่อคุณสมบัติ
คำอธิบาย
Tick เป็นอีเว็นต์ที่เกิดขึ้นในทุกช่วงเวลาที่เราได้กำหนดไว้ในคุณสมบัติ Interval

       ตัวอย่างโปรแกรมแสดงการใช้งานไทเมอร์
       เมื่อเริ่มรันจะสั่งให้ปุ่มเคลื่อนที่ไปทางซ้ายทีละ 10 เมื่อกดปุ่มจะหยุด และกดที่ Form จะเริ่มเคลื่อนที่ใหม่ แต่ถ้าปุ่มเลื่อนไปจนสุดหน้าจอก็จะเลื่อนกลับมา

Dim flag As Boolean
Private Sub Timer1_Elapsed(ByVal sender As Object, ByVal e As System.Timers.ElapsedEventArgs) Handles Timer1.Elapsed
     If flag = False Then
        Button1.Left = Button1.Left + 10
        If Button1.Left > Me.Width Then
           flag = True
        End If
     Else
        If Button1.Left < 0 Then
            flag = False
        End If
        Button1.Left = Button1.Left - 10
     End If

End Sub

Private Sub Timer1_Elapsed(ByVal sender As Object, ByVal e As System.Timers.ElapsedEventArgs) Handles Timer1.Elapsed
     Button1.Left = Button1.Left + 10
End Sub

Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
     Timer1.Stop()
End Sub

Private Sub Form1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Click
     Timer1.Start()
End Sub

:: สกรอลบาร์
       สกรอลบาร์จะใช้ในโอกาสที่ไม่สามารถแสดงผลข้อมูลทั้งหมดได้ในคราวเดียว เนื่องจากมีพื้นที่ในการแสดงผลไม่เพียงพอ

       คุณสมบัติที่สำคัญของสกรอลบาร์

ชื่อคุณสมบัติ
คำอธิบาย
Minimum เป็นค่าต่ำสุดที่เป็นไปได้ของสกรอลบาร์
Maximum เป็นค่าสูงสุดที่เป็นไปได้ของสกรอลบาร์
Value เป็นคุณสมบัติที่ตรงกับตำแหน่งของสกรอลบ็อกซ์ในสกรอลบาร์
SmallChange เป็นการบอกว่าคุณสมบัติ Value จะมีค่าเปลี่ยนแปลงครั้งละเท่าไร เมื่อเกิดการคลิกเมาส์ที่ปุ่มลูกศรของสกรอลบาร์
LargeChange เป็นการบอกว่าคุณสมบัติ Value จะมีค่าเปลี่ยนแปลงไปเท่าไร เมื่อมีการเปลี่ยนตำแหน่งของสกรอลบ็อกซ์ โดยการคลิกเมาส์ที่สกรอลบาร์
ValueChange เป็นอีเว็นต์ที่เกิดขึ้น เมื่อค่าคุณสมบัติ Value เปลี่ยน
Scroll เป็นอีเว็นต์ที่เกิดขึ้น เมื่อมีการเลื่อนปุ่มบนสกรอลบ็อกซ์ โดยไม่รวมการคลิกเมาส์ เลื่อนโดยปุ่มลูกศรของสกรอลบาร์กับการ คลิกเมาส์ที่สกรอลบาร์

       ตัวอย่างโปรแกรมแสดงการใช้งานสกรอลบาร์
ขั้นตอนการสร้างโปรแกรม

1. ให้วางคอนโทรลต่างๆ และกำหนดคุณสมบัติของคอนโทรล ตามตาราง

ชนิดคอนโทรล
คุณสมบัติ
ค่าที่กำหนดให้
Form  Text Form1
Name Form1
Label   Name Label1
Text Radius
AutoSize True
Label   Name Label2
Text Area
AutoSize True
TextBox  Name TextBox1
Text TextBox1
TextBox  Name TextBox2
Text TextBox2
HScrollBar    Name HScrollBar1
Minimum 0
Maximum 100
Value 0

2. ใส่คำสั่งโปรแกรมลงไปใน Code Editor

Private Sub HScrollBar1_Scroll(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ScrollEventArgs) Handles HScrollBar1.Scroll
     TextBox1.Text = Format(HScrollBar1.Value, "###.00")
     TextBox2.Text = Format((HScrollBar1.Value ^ 2) * Math.PI, "###.00")
End Sub

Private Sub hscrollbar1_valuechanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles HScrollBar1.ValueChanged
     TextBox1.Text = Format(HScrollBar1.Value, "###.00")
     TextBox2.Text = Format((HScrollBar1.Value ^ 2) * Math.PI, "###.00")
End Sub

3. รันโปรแกรมที่สร้างมาจะได้ผลลัพธ์

 

กลับเมนูหลัก