30 พฤศจิกายน 2553

VB.Net กับ Lambda

คุณสามารถเขียนฟังก์ชัน (function) หรือ ซับรูทีน (sub) ภายใต้นิพจน์คำสั่ง (expression) lambda ได้อย่างง่าย ๆ เหมือนกับการกำหนดตัวแปร ซึ่งเราสามารถเขียนไว้ภายใต้ ฟังก์ชัน หรือ เมธอด ที่มีอยู่แล้ว
การเขียนฟังก์ชันหรือซับรูทีนในนิพจน์คำสั่ง Lambda เราไม่ต้องตั้งชื่อให้กับฟังก์ชัน หรือ เมธอด ซึ่งก็เป็นข้อดีอีกอย่างหนึ่ง

สำหรับวิธีการ จะขอยกตัวอย่างเปรียบเทียบระหว่าง การเขียนฟังก์ชัน ธรรมดา กับ การเขียนแบบ lambda

ตัวอย่าง ฟังก์ชันการหา Factorial

Module Module1
Sub Main()
Dim nResult AS Long
nResult = Factorial(5)
Console.WriteLine(nResult) 'ค่าที่ได้คือ 120
End Sub

Function Factorial(ByVal number As Long) As Long
If number <= 1 Then
Return (1)
Else
Return number * Factorial(number - 1)
End If
End Function
End Module

ตัวอย่าง ฟังก์ชันการหา Factorial โดยเขียนแบบนิพจน์คำสั่ง Lambda

Module Module1
Sub Main()
Dim nResult As Func(Of Long, Long) = Function(number As Long)
If number <= 1 Then
Return (1)
Else
Return number * nResult(number - 1)
End If
End Function
Console.WriteLine(nResult.Invoke(5)) 'ค่าที่ได้คือ 120
End Sub
End Module

26 พฤศจิกายน 2553

VB.Net จับ Form ใส่ SplitContainer

จับปูใส่กระด้ง กับ จับฟอร์มใส่ splitContainer เหมือนกันหรือไม่ ?
คงไม่เหมือนกันเพราะปูสามารถเดินหลุดออกจากกระด้งได้
แต่ ฟอร์มมันจะหลุดออกจาก SplitContainer ไม่ได้

อ่านไปอ่านมาก็คงจะแปลกใจ ว่าทำไมถึงต้องมาจับฟอร์มใส่ไว้ใน SplitContainer
แต่เมื่ออ่านบทความนี้ แล้วทำตามจนสำเร็จ ก็คงจะไม่แปลกใจว่าทำไมเราจะต้องจับฟอร์มให้มันมาอยู่ใน SplitContainer

เพราะเหตุเหรอ ก็อยากให้มันมาอยู่ในนี้ ยิ่งอ่านยิ่งงงใช่ไหม งั้นมาเริ่มทำกันเลยดีกว่า
1. เปิด Visual Studio 20xx จากนั้นคลิกเลือก New Project....
เลือก Visual Basic -> Windows -> Windows Forms Application
ที่ช่อง Name ป้อน myFormSplitContainer













2. ที่ฟอร์ม Designer ของ form1 ให้ตกแตงฟอร์มตามตัวอย่าง















- ลาก MenuStrip มาวางไว้ที่ฟอร์ม แล้วใส่รายการตามภาพด้านบน
- ลาก SplitContainer มาวางไว้ที่ฟอร์ม
- ลาก TreeView มาวางไว้ที่ SplitContainer ฝั่งด้านซ้าย (panel 1) แล้วจัดให้สวยงาม
- ให้กำหนด Property ของฟอร์ม ชื่อ IsMdiContainer กำหนดให้เป็น True
3. ที่ TreeView ให้คลิกที่แถบมุมบนด้านขวาเพื่อเปิดเมนู แล้วเลือก Edit Nodes...

- ทำการเพิ่ม Node เข้าไปโดยคลิกที่ Add Root หรือ Add Child


















4. จากนั้นไปที่เมนู ดับเบิ้ลคลิกที่รายการเมนูชื่อ "เปิดฟอร์ม 1" (จะเข้าหน้าต่างเขียนคำสั่ง)














ให้เขียนคำสั่ง ดังนี้

Private Sub เปดฟอรม1ToolStripMenuItem_Click(ByVal sender As System.Object,  _
ByVal e As System.EventArgs) Handles เปดฟอรม1ToolStripMenuItem.Click
     If myFindForm("form2") = False Then
          Dim frm As Form2
          frm = New Form2
          frm.TopLevel = False
          frm.Parent = Me.SplitContainer1.Panel2
          frm.Show()
          frm.BringToFront()
      End If
End Sub

Function myFindForm(ByVal frm As String) As Boolean
    For Each ctl As Control In Me.SplitContainer1.Panel2.Controls
        If ctl.Name.ToUpper = frm.ToUpper Then
            ctl.Show()
            ctl.BringToFront()
            Return True
        End If
   Next
   Return False
End Function

5. ให้ทำการสร้างฟอร์มขึ้นมาใหม่อีก 1 ฟอร์ม โดยกดปุ่ม Ctrl + Shift + A
จากนั้นคลิกที่ Windows Form -> Windows Form แล้วตั้งชื่อฟอร์มว่า Form2.vb ดังภาพ



















6. ตกแต่งหน้าจอของฟอร์ม form2.vb ตามชอบใจ หรือจะเลียนแบบ ตามภาพด้านล่าง




















7. ทำการ run โปรแกรมที่เขียนไว้โดยกดปุ่ม F5
จากนั้นก็ทดสอบเลือกเมนู ฟอร์ม -> เปิดฟอร์ม 1 ก็จะได้ผลลัพธ์ดังภาพ



















ถ้าหากผู้อ่านทำตามขั้นตอนมาถึงจนได้ผลลัพธ์ที่เห็นดังภาพ ก็คงหมดข้อสงสัยว่าทำไม่ต้องจับฟอร์มใส่ SplitContainer

โชคดี มีวิธีใช้ฟอร์มแบบใหม่ ๆ

31 ตุลาคม 2553

VB.Net QueryUnload หายไปไหน

คุณคงเคยใช้ปุ่ม X ที่อยู่มุมขวาของฟอร์มเพื่อทำการปิดฟอร์มใช่หรือเปล่า
แต่โปรแกรมเมอร์น้อยคนนักที่เขียนโปรแกรมเพื่อคุมการปิดฟอร์มจากปุ่มนี้
ในอดีต หากใช้ Visual Basic 6 , Microsoft Access , Visual FoxPro
ก็จะมีอีเวนต์ชื่อ QueryUnload เพื่อใช้ในการเขียนคำสั่งเพื่อควบคุมการปิดฟอร์มจากการกดปุ่ม X (close)





















ใน VB.Net อีเวนต์ชื่อ QueryUnload หายไป มันหายไปไหน แล้วทำไม่ถึงหายไป ?????
ไม่ ๆ มันไม่ได้หายไปไหน ใน VB.Net รวมถึงตระกูล .NET ได้เปลี่ยนไปใช้อีเวนต์ชื่อ FormClosing



ดังนั้นเราก็สามารถเขียนควบคุมการปิดฟอร์มด้วยปุ่ม X (close) ได้แล้ว ดังตัวอย่าง

Private Sub frmMember_FormClosing(ByVal sender As Object, _
ByVal e As System.Windows.Forms.FormClosingEventArgs) _
Handles Me.FormClosing
If MessageBox.Show("ต้องการยกเลิกหน้าจอหรือไม่", "ยืนยัน", _
MessageBoxButtons.YesNo, MessageBoxIcon.Question, _
MessageBoxDefaultButton.Button2) = Windows.Forms.DialogResult.No Then
e.Cancel = True
End If

End Sub

จากตัวอย่างข้างต้น เวลามีใครมากดปุ่ม X (close) ก็จะมี Messagebox มาถามยืนยันว่าจะปิดฟอร์มหรือไม่

สำหรับบทเรียนนี้ก็จบเพียงเท่านี้ สวัสดีราตรีสวัสดิ์

17 ตุลาคม 2553

Visual Studio Tips

ทิปเล็ก ๆ กับ Keyboard Shortcut บน Visual Studio
- CTRL + K , C กำหนดคอมเมนต์ Insert Comment
- CTRL + K , U ยกเลิกกำหนดคอมเมนต์ Remove Comment
- CTRL + U ตัวอักษรเล็ก Lower Case
- CTRL + SHIFT + U ตัวอักษรใหญ่ Upper Case
- CTRL + SHIFT + W เลือกคำม Select Word
- F2 แสดง Object Browser มีประโยชน์ มาก ๆ เวลาหาสิ่งที่ต้องการ
- ALT + SHIFT + ENTER ขยายหน้าจอเขียนคำสั่ง Maximize Program Editor
- เมนู Tools | Options | Text Editor | Basic หรือ C# | Editor | Line numbers แสดง Line Number
- CTRL + M , L ย่อขยายบล๊อกคำสั่ง Fold/Unfold all regions
- CTRL + SHIFT + A Add New Item
- CTRL + SHIFT + B Build Project
- ? + TAB Insert Snippet
- CTRL + SPACE Show Snippet
- CTRL + J Show IntelliSense®

Download Poster ได้ที่
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=92ced922-d505-457a-8c9c-84036160639f
VB.Net 2010 sample
http://code.msdn.microsoft.com/vb2010samples/Release/ProjectReleases.aspx?ReleaseId=4174

ป้อนข้อมูลเฉพาะตัวเลข Type numeric only

If Char.IsNumber(e.KeyChar)=False Then
e.handled=True
End If


การลบแถวใน DataGridView

แบบที่ 1 - กรณีที่เลือกหลาย ๆ แถวแล้วลบ

For Each row As DataGridViewRow In DataGridView1.SelectedRows
DataGridView1.Rows.Remove(row)
Next

แบบที่ 2 - ลบแถวปัจจุบัน อยู่แถวไหนก็ลบแถวนั้น

DataGridView1.Rows.Remove(DataGridView1.CurrentRow)

29 กันยายน 2553

VB.Net Class Episode 2 การสร้างคลาส

VB.Net Class Episode 1 ซึ่งเป็นภาคแรก เราได้เรียนรู้การสร้างคอนโทรลคลาส แล้วลากมาวางไว้ที่ฟอร์ม (ถ้ายังไม่ได้อ่าน กรุณากลับไปอ่านโดยด่วน http://kasem-mesak.blogspot.com/2010/09/vbnet-class-epsode-1.html)
แต่มีคลาสอีกตัวที่อยู่นอกเหนือคอรโทรคลาส ซึ่งก็คือ ฟอร์ม ถ้าเราจะทำเป็นคลาส แล้วให้ฟอร์มอื่นสืบทอดไปใช้งานอีกทอดหนึ่ง ทำอย่างไรบทความนี้มีคำตอบ

การสร้าง Sub Class ของ Form
1. เปิด Visual Studio 20xx จากนั้นคลิกเลือก New Project....
เลือก Visual Basic -> Windows -> Windows Forms Application
ที่ช่อง Name ป้อน myFormClass





















2. ที่ฟอร์ม Designer ให้ตกแตงฟอร์มตามตัวอย่าง
















3. ทำการบันทึก โดยไปที่เมนู File -> Save All
ช่อง Name ป้อน myFormClass
ช่อง Location ป้อน D:\VBNET_CLASS
ช่อง Solution Name ป้อน myFormClass








4. จากนั้นให้ไปคลิกเมาส์ปุ่มขวาที่ ชื่อ myFormClass เลือก Properties
ที่แทป Application ปลี่ยนค่าใน Application type เป็น Class Library














5. ทำการ Build โปรเจกต์ให้เป็นไฟล์ DLL โดยไปที่เมนู Build -> Build myFormClass
( จะได้ไฟล์ myFormClass.dll อยู่ในโฟลด์เดอร์
D:\VBNET_CLSS\myFormClass\myFormClass\bin\Debug )

การนำ sub Class ของฟอร์มไปใช้

1. เปิด Visual Studio 20xx จากนั้นคลิกเลือก New Project....
เลือก Visual Basic -> Windows -> Windows Forms Application
ที่ช่อง Name ป้อน myProjForm

2. ไปที่เมนู Project -> Add New Item...
ที่ Common Items เลือก Windows Forms จากนั้นเลือก Inherited Form
แล้วคลิกปุ่ม Add













3. ที่หน้าต่าง Inheritance Picker คลิกปุ่ม Browse
4. ไปเลือกไฟล์ myFromClass.DLL ที่เราได้สร้างไว้
(อยู่ในโฟล์เดอร์ D:\VBNET_CLSS\myFormClass\myFormClass\bin\Debug )
เมื่อเลือกเสร็จคลิกปุ่ม Open
5. จากนั้นจะกลับมาที่หน้าต่าง Inheritance Picker อีกครั้ง
ให้คลิกที่ Form1 แล้วคลิก OK
















เราก็จะได้ฟอร์มที่สืบทอดมาจาก sub class ที่เราได้สร้างไว้
ซึ่งจะทำให้เกิดความสะดวกในการจัดการรูปแบบของฟอร์ม
สามารถสร้างฟอร์มคลาสที่รวบรวมคำสั่งต่าง ๆ ที่จำเป็นไว้ได้
และอื่น ๆ อีกมากมาย

เรื่องของคลาส ส่วนใหญ่เป็นเรื่องของสืบทอด ถ้าเราเข้าใจที่ไปที่มา
เราก็สามารถใช้งานได้อย่างง่ายดาย

โชคดีมีฟอร์มใช้อีกแล้วครับท่าน

24 กันยายน 2553

VB.Net Class Episode 1 การสร้างคลาส

เคยไหมเวลาพูดถึงเรื่องคลาสทีไร งงทุกที ไปหาตัวอย่างที่เขายกขึ้นมา เห็นมีแต่ตัวอย่าง บ้าน หรือไม่ก็ รถ อ่านจบก็งง จะเขียนโปรแกรมมันไปเกี่ยวอะไรกับบ้านหรือรถ(ว่ะ) สรุปเกาหัว ผละออกมาดีกว่า ผลสรุปเขียนไม่เป็นซักที หลายครั้งไปเจอเพื่อน ๆ พอคุยเรื่องการเขียนโปรแกรมแนว OOP ส แกก็เล่ามาว่า ได้เชิญวิทยากร อันดับ 101 ของไทยมาอบรม วิทยากรบรรยาย เกี่ยวกับ OOP ได้เยี่ยมมาก ทฤษฎีเป๊ะ ๆ มีรถสีอะไร บ้านต้องมีหน้าต่างกี่บ้านประตูกี่บาน สีอะไร โห ฟังไปเคลิ้มไป บรรยายเก่งมาก ๆ ยกนิ้วให้เลย พอเรียนจบ เกาหัว งานนี้ได้เพิ่มเหามาอีก สรุปกลับมาก็ยังเขียนโปรแกรมแนวสร้างบ้านไม่เป็น ทั้ง ๆ ที่เป็นคนเขียนโปรแกรมและทำระบบมาก่อน จริง ๆ โทษใครไม่ได้ ต้องโทษตัวเอง (คงจะแก่เกินเรียนแล้วล่ะ) เอาล่ะ ไม่เป็นไร วันก่อนฟังเรื่องราวของกระดุมเม็ดแรก จำชื่อ อ. ผู้แต่งเรื่องนี้ไม่ได้ต้องกราบขออภัยด้วย เวลาเราใส่เสื้อถ้าเราเผลอไปติดกระดุมเม็ดแรกผิด จะสังเกตว่ามันจะผิดไปจนหมด อิๆ กว่าจะรู้ตัวก็โน่นไปเป็นสุดท้าย เมื่อติดผิดก็ต้องเลาะใหม่หมด แล้วเริ่มใหม่ (อ้าวไปนอกเรืองซะแล้ว) แต่โปรแกรมไม่ใช่กระดุม แต่มันก็ใกล้เคียงกัน บางทีผิดนิดเดียว แต่ต้องรื้อใหม่หมด แต่ก็มีข้อดี ยิ่งเขียนผิด เขียนแล้วมี Error คนเขียนยิ่งเก่ง (ถ้ามันไม่เลิกเขียนไปซะก่อน) การเขียนโปรแกรมคือการแก้ปัญหา ใครมีปัญหาอะไรก็มาให้เราแก้ให้ จำไว้ว่ายิ่งเขียนยิ่งได้บุญ (ตังค์ก็ได้ด้วย) นอกเรื่องไปซะนาน คลาส (class) ก็ไม่ใช่กระดุม แต่มันก็มีลักษณะเหมือนกระดุม เป็นเม็ด ๆ มีหน้าที่ในตัวมัน อิๆ ไม่ได้ยกตัวอย่างเรื่องบ้าน กับ รถ แล้วน่ะ แต่เป็น กระดุม เข้าเรื่องดีกว่า

เรื่องของคลาสมันเป็นเรื่องยาว ทฤษฎี อ่านแล้วงง ฟังจบแล้วทึ่ง เลยต้องทำเป็นตอน ๆ แบบ StarWar ต้องเอาตอนจบไว้ภาคแรก ๆ แล้วค่อยย้อนกลับไปอดีต บทความนี้ก็เหมือนกัน เอาตอนจบไว้ภาคแรกเลย เพื่อให้เห็นภาพที่เราจะย้อนไปจุดเริ่มต้นได้

เวลาเราสร้างฟอร์ม เราต้องลาก โน่น ลาก นี่จาก Toolbox มาวาง เช่น ลาก TextBox หรือ Button มาวาง ดังภาพ

























สิ่งต่าง ๆ ที่อยู่ใน Toolbox ที่เราลากมา เราจะเรียกมันว่า เบสคลาส (base class) ซึ่งเป็นต้นเรื่องของทุกสิ่ง แต่ไอ้ตัวตนเรื่องนี่สิ มันทำให้เกิดเรื่อง(นี้) ตอนมันอยู่ดี ๆ ใน toolbox มันเป็น คลาส แต่พอลากมาวาง มันกลายเป็นออบเจกต์ (object) หรือภาษาไทยเรียกว่าวัตถุ แต่เนื่องจาก Microsoft เป็นบริษัทช่างคิด คิดหลายตลบ สรุป คิดให้คลาสที่ตัวเองสร้างขึ้นให้มันโง่ที่สุด โง่หรือไม่ดูที่ คลาส TextBox ที่สร้างขึ้นมา มันโง่สิ้นดี ความโง่อันดับแรกคือกด Enter แล้วจะให้มันออกจาก TextBox ก็ไม่ได้ ดันให้ใช้ปุ่ม tab ตานี้ต้องมาเป็นหน้าที่ของคนเขียนโปรแกรมเขียนยัดใส่ไว้ว่า ถ้ากดปุ่ม Enter ใน textbox ตัวนี้เมื่อไหร่ ให้ส่งคำสั่ง tab ไปเพื่อเลื่อนไปช่องถัดไป
เอาล่ะหว่า ฟอร์มแต่ละฟอร์ม มี TextBox เป็นสิบ (ยังไม่นับคลาสตัวอื่นที่เอามาสร้างอีกเป็นกระบุง) เขียนคำสั่งกันตาเหลือกแน่ แต่เรากำลังกล่าวถึง OOP (วิธีการเขียนโปรแกรมแนวบ้านกับรถ) ซึ่งคลาสนั้นจะมีคุณสมบัติสืบทอด (inheritance) จากคลาสแม่แบบที่เราเรียกว่า base class ไปเป็นคลาสย่อย (sub class) หรือคลาสลูก แล้วลูกก็สามารถสร้างลูกต่อไปได้เรื่อย ๆ เฮ้อออ สรุปว่า งง อยู่ดี
กลับมาที่ตัวก่อเรื่อง คือ TextBox ถ้าเราต้องการให้มันรู้จักปุ่ม Enter ในการเลื่อนไปที่อื่น เราก็ต้องปฎิสนธิให้มันเพื่อให้มันเกิดลูกขึ้นมา กลายเป็น sub class ของ TextBox ตัวใหม่ สำหรับวิธีการปฎิสนธิมันเหรอมีขั้นตอน ดังนี้
1. เปิดโปรแกรม Visual Studio 20xx
2. ไปที่เมนู File -> New Project...
3. ที่หน้าต่าง New Project คลิกเลือกที่ Windows Forms Application แล้วที่ช่อง Name ใส่ชื่อเป็น myFirstClass แล้วคลิกปุ่ม OK (คลาสแรกของฉัน)
4. จากนั้นจะขึ้น ฟอร์ม มาให้เขาเขียนคำสั่ง ตอนนี้ไม่ต้องสนใจ ปล่อยมันไปก่อน
5. ไปที่เมนู Project เลือก Add Class... ก็ได้
6. ที่หน้าต่าง Add New Item ให้คลิกเลือก Class แล้วตรงส่วนของ Name ตั้งชื่อเป็น KTextBox แล้วคลิกปุ่ม Add ดังภาพ (ตัว K ย่อมาจาก Kasem)




















7. จะขึ้นหน้าต่างให้ป้อนคำสั่ง ให้ทำการป้อนคำสั่ง ดังนี้



Public Class KTextBox
Inherits System.Windows.Forms.TextBox
Private Sub OnTextBox_KeyPress(ByVal sender As Object, _
ByVal e As System.Windows.Forms.KeyPressEventArgs) _
Handles Me.KeyPress
If e.KeyChar = Chr(Keys.Enter) Then
SendKeys.Send("{TAB}")
End If
End Sub
End Class



8. ให้ไปที่เมนู Build > Build myFirstClass (ชื่อโปรเจกต์ที่เราตั้งขึ้นตอนแรก) หากไม่มี error อะไรเกิดขึ้น เราสร้างคลาสเสร็จแล้ว

9. กลับไปที่ Form1.vb ให้คุณดูที่หน้าต่าง Toolbox ไล่ดูให้ทั่วจะเห็น myFirstclass Components ที่เราสร้างขึ้นมา ให้คุณทำการลาก sub class ชื่อ KTextBox มาวางไว้ที่ฟอร์ม ดังภาพ
























10. จากนั้นกดปุ่ม F5 เพื่อสั่งให้ฟอร์มทำงาน ลองทดสอบดูโดยการกดปุ่ม enter ที่ textbox แต่ละตัว

เป็นอย่างไรบ้างการสืบทอดคลาส และวิธีการเรียกใช้งาน

อธิบายคำสั่ง

Public Class KTextBox -> สร้างคลาสชื่อ KTextBox

Inherits System.Windows.Forms.TextBox -> คลาสที่สร้างสืบทอดมาจากพ่อแม่มันคือ TextBox

ส่วน ล่างนี้คือ subroutine สำหรับตรวจสอบการกดปุ่ม

Private Sub OnTextBox_KeyPress(ByVal sender As Object, _
ByVal e As System.Windows.Forms.KeyPressEventArgs) _
Handles Me.KeyPress
If e.KeyChar = Chr(Keys.Enter) Then
SendKeys.Send("{TAB}")
End If
End Sub


การบ้าน ให้แก้ไขคลาส KTextBox โดยกำหนดให้ textbox ของเรามีค่าเริ่มต้นดังนี้
font เป็น Tahoma , size 10
width เป็น 100
height เป็น 22
(ใบให้นิดนึง มันเกี่ยวกับ constructor )

โชคดี มีคลาสใช้ ทำดูหลาย ๆ คลาส แล้วจะรู้ว่ามันไม่ใช่แค่บ้านกับรถ

เฉลยการบ้าน
ทำโดยการเพิ่ม constructor เข้าไปในคลาส ดังนี้

Public Class KTextBox
Inherits System.Windows.Forms.TextBox

Sub New()
Dim FontName As String = "Tahoma"
Dim FontSize As Integer = 10
Dim FS As New Font(FontName, FontSize, FontStyle.Regular)
Me.Font = FS
Me.Width = 100
Me.Height = 22
End Sub

Private Sub OnTextBox_KeyPress(ByVal sender As Object, _
ByVal e As System.Windows.Forms.KeyPressEventArgs) _
Handles Me.KeyPress
If e.KeyChar = Chr(Keys.Enter) Then
SendKeys.Send("{TAB}")
End If
End Sub
End Class


ไว้พบกันตอน Episode 2

10 กันยายน 2553

System Tray ด้วย VB.Net

บทความนี้เขียนมาก็เนื่องจาก วันดีคืนดี มีการปรับปรุงระบบอินเทอร์เน็ตที่องค์กรเพิ่มระบบป้องกันใหม่ นอกจากระบุตัวตนการใช้งาน ก็คือ TimeOut เมื่อไม่มีการใช้งานอินเทอร์เน็ตเกิน 5 นาที ก็จะตัดการทำงาน ทีนี้เวลาจะมาใช้ใหม่ก็ต้อง log in ใหม่ วัน ๆ ต้อง log in กันไม่รู้กี่รอบ
ปัญหามา ปัญญาเกิด ทำไงดีขี้เกียจ ก็เลยสร้างโปรแกรมเล็ก ๆ ฝังไว้ใน System Tray ให้มันหลอกเช็คไปที่เว็บไซต์ข้างนอกที่เป็นสากล จะได้กระตุ้นหลอกว่าข้ายังใช้งานอยู่น่ะ อย่ามาตัด TimeOut ฉัน
ก็เลยมี 2 งานมาอยู่ในบทความนี้ ประกอบด้วย System Tray แล้วก็ตรวจสอบ Internet Connection

เริ่มกันเลย

1. เปิดโปรแกรม Visual Studio 2008 (2005 หรือ 2010 ก็ได้) จากนั้น เลือกเมนู File ---> New Project ที่หน้าต่าง New Project เลือก Visual Basic เลือก Windows เลือก Windows Forms Application จากนั้นที่ช่อง Name ตั้งชื่อตามต้องการ สำหรับตัวอย่างนี้จะตั้งเป็น myTray แล้วคลิกปุ่ม OK

2. ไปที่ Toolbox
ลากคอนโทล Button มาวางไว้ที่ฟอร์ม กำหนด Properties -> Text พิมพ์ Minimize
ลากคอนโทล Label มาวางไว้ที่ฟอร์ม กำหนด Properties -> Text พิมพ์ ..กำลังตรวจสอบสัญญาณ..
ลากคอนโทล NotifyIcon มาวางไว้ที่ฟอร์ม กำหนด Properties -> Icon โดย หารูปไอคอนที่ต้องการ
ลากคอนโทล Timer มาวางไว้ที่ฟอร์ม

ตามภาพด้านล่าง















3. ดับเบิ้ลคลิกที่ฟอร์มว่าง ๆ แล้วป้อนคำสั่งดังนี้

















ถ้าอ่านไม่ออก ก็ Copy ตรงนี้ไปได้เลย

Public Class Form1
Dim nTimeCheck As Integer = 60 ' ตรวจสอบทุก nn วินาที
Private Sub Form1_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
Timer1.Interval = nTimeCheck * 1000
CheckConnect()
HideSysTray()
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click
HideSysTray()
End Sub
Private Sub NotifyIcon1_MouseDoubleClick( _
ByVal sender As System.Object, ByVal e As _
System.Windows.Forms.MouseEventArgs) _
Handles NotifyIcon1.MouseDoubleClick
ShowSysTray()
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Timer1.Tick
CheckConnect()
End Sub
Private Sub CheckConnect()
If Me.IsConnectionAvailable() Then
Me.Label1.Text = "สถานะเชื่อมต่ออินเทอร์เน็ต"
Me.Label1.ForeColor = Color.Green
Else
Me.Label1.Text = "!!! อินเทอร์เน็ตขาดการติดต่อ !!!"
Me.Label1.ForeColor = Color.Red
End If
End Sub
Private Sub HideSysTray()
Me.Hide()
NotifyIcon1.ShowBalloonTip(3000, _
"สวัสดี อินเทอร์เน็ต", "by Kasami", ToolTipIcon.Warning)
Me.WindowState = FormWindowState.Normal
End Sub
Private Sub ShowSysTray()
Me.Show()
Me.WindowState = FormWindowState.Normal
End Sub
Private Function IsConnectionAvailable() As Boolean
'Call url
Dim url As New System.Uri("http://www.google.com/")
'Request for request
Dim req As System.Net.WebRequest
req = System.Net.WebRequest.Create(url)
Dim resp As System.Net.WebResponse
Try
resp = req.GetResponse()
resp.Close()
req = Nothing
Return True
Catch ex As Exception
req = Nothing
Return False
End Try
End Function
End Class

จากนั้นก็ทำการเรียกฟอร์มให้ทำงาน (Start Debug)

โชคดี กับ System Tray

07 กันยายน 2553

เทียบคำสั่ง VB.Net กับ VFP

Form Event

เช็คปุ่มฟังก์ชันคีย์บนฟอร์ม
VFP
1. ที่ Form Property กำหนด KeyPreview = .T.
2. ที่ ฟอร์มอีเวนต์ ชื่อ KeyPress เมื่อกดปุ่ม F5 แล้วให้ปุ่มคำสั่ง cmdExec ทำการประมวลผล
และ ปุ่ม ESC ให้ออกจากฟอร์ม

&& Form.KeyPress Event
DO CASE
CASE nKeyCode = -4
ThisForm.cmdExec.SetFocus()
ThisForm.cmdExec.Click()
CASE nKeyCode = 27
ThisForm.Release
ENDCASE


VB.Net
1. ที่ Form Property กำหนด KeyPreview = true
2. ที่ ฟอร์มอีเวนต์ ชื่อ KeyUp เมื่อกดปุ่ม F5 แล้วให้ปุ่มคำสั่ง cmdExec ทำการประมวลผล และ ปุ่ม ESC ให้ออกจากฟอร์ม

Private Sub Form1_KeyDown( _
ByVal sender As Object, _
ByVal e As System.Windows.Forms.KeyEventArgs _
) Handles MyBase.KeyDown 'แก้จาก Me.KeyDown - เป็น - MyBase.KeyDown
Select Case e.KeyCode
Case Keys.F5
Me.btnExec.Focus()
Me.btnExec.PerformClick() ' VFP ใช้ Click() เฉย ๆ
Case Keys.Escape
End 'exit
End Select
End Sub

25 สิงหาคม 2553

มาสร้าง PDF Viewer ด้วย VB.Net กัน

เวลาที่ผู้เขียนทำระบบงาน ก็จะมีหน้าจอสำหรับใช้ดูไฟล์ประเภท PDF ซึ่งจริง ๆ แล้วเราก็สามารถดู PDF File โดยอาศัยโปรแกรม Acrobat Reader หรือ FoxIt Reader ได้อยู่แล้ว
แต่ถ้าเราต้องการทำระบบงานของเราให้สามารถพิมพ์เอกสารเก็บไว้ในรูปของ PDF File แล้วให้ผู้ใช้เปิดงาน เช่น สืบค้นเอกสารเก่าที่พิมพ์ไว้ หรือนำเอกสารเหล่านั้นมาพิมพ์ ถ้าเราให้ผู้ใช้ดูผ่านโปรแกรม Acrobat Reader หรือ FoxIT คงไม่สะดวก ดังนั้นเราก็ควรสร้าง PDF View มาให้ผู้ใช้งานไม่ต้องออกจากระบบงานไม่ดีกว่าหรือ (สำหรับการใช้งาน ก็ยังอาศัย Acrobat Reader และ FoxIT Reader ซึ่งจะต้องติดตั้งไว้ในเครื่องด้วย) มาเริ่มสร้างกันเลย

1. เปิดโปรแกรม Visual Studio 2008 (2005 หรือ 2010 ก็ได้) จากนั้น เลือกเมนู File ---> New Project ที่หน้าต่าง New Project เลือก Visual Basic เลือก Windows เลือก Windows Forms Application จากนั้นที่ช่อง Name ตั้งชื่อตามต้องการ สำหรับตัวอย่างนี้จะตั้งเป็น PDFViewer แล้วคลิกปุ่ม OK ดังภาพ














2. ไปที่ Toolbox ลากปุ่ม Button มาวางไว้ที่ฟอร์ม จากนั้นกำหนด Properties ของปุ่ม Button1 ในส่วนของ Text เป็น Open File
















3. ไปที่เมนู Tools เลือกรายการ Choose Toolbox Items... รอสักครู่(หลายอึดใจเหมือนกัน)จะขึ้น หน้าต่าง Choose Toolbox Items จากนั้นคลิกเลือกแทป COM Components แล้วคลิกเลือกรายการ Microsoft Web Browser จากนั้นคลิกปุ่ม OK ดังภาพ
















4. เมื่อเลือก Microsoft Web Browser เรียบร้อย ก็จะกลับมาที่ฟอร์ม ให้คลิกเมาส์ที่ฟอร์มแล้วลากเพื่อกำหนดขนาดของ Microsoft Web Browser ตามต้องการ ดังภาพ
















5. ไปที่ ToolBox เลือก OpenFileDialog แล้วลากมาวางไว้ที่ฟอร์ม ดังภาพ



















6. ให้ Double Click ที่ปุ่ม Open File แล้วป้อนคำสั่ง ดังนี้










โค้ด ตามรูปด้านบน


Imports System.IO

Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click
Dim Response As DialogResult
OpenFileDialog1.FileName = ""
OpenFileDialog1.Filter = "PDF Files(*.pdf)|*.pdf|All Files(*.*)|*.*"
Response = OpenFileDialog1.ShowDialog()
If Response <> Windows.Forms.DialogResult.Cancel Then
If OpenFileDialog1.FileName <> "" Then
AxWebBrowser1.Navigate(OpenFileDialog1.FileName)
End If
End If
End Sub
End Class


จากนั้นให้ทำการเรียกใช้งานโปรแกรมโดยกดปุ่ม F5

เราก็จะได้ ฟอร์ม PDF Viewer ที่เขียนด้วย Visual Basic .Net

24 สิงหาคม 2553

กำหนด SplashScreen ให้กับระบบงานด้วย VB.Net

เวลาเราเรียกใช้งานโปรแกรมต่าง ๆ เช่น Word, PowerPoint, Excel หรือ Application อื่น ๆ เวลาเรียกโปรแกรมจะปรากฎหน้าจอเล็ก ๆ แสดงรายละเอียดของโปรแกรม ระหว่างที่กำลังโหลดโปรแกรมขึ้นมาใช้งาน ซึ่งหน้าจอที่เราเห็นนั้นจะปรากฎมาแค่ชั่วขณะ แล้วก็หายไป หน้าจอเหล่านี้เราเรียกว่า Splash Screen

บทความนี้จะนำท่านสู่การเขียนคำสั่งเพื่อทำ Splash Screen สำหรับระบบงานของเรา ด้วยภาษา Visual Basic 2008 หรือถ้าท่านใดถนัด รุ่น Visual Basic 2010 ก็ใช้ได้เช่นเดียวกัน

1. เปิดโปรแกรม Visual Studio 2008 จากนั้น เลือกเมนู File ---> New Project ที่หน้าต่าง New Project เลือก Visual Basic เลือก Windows เลือก Windows Forms Application จากนั้นที่ช่อง Name ตั้งชื่อตามต้องการ แล้วคลิกปุ่ม OK ดังภาพ













2. สร้างฟอร์ม splash screen โดยทำการคลิกเมาส์ปุ่มขวาที่ ชื่อ โปรเจกต์ ในส่วนของ Solution Explorer เลือก รายการ Add จากนั้นคลิกที่รายการ New Item ดังภาพ





















3. ที่หน้าต่าง Add New Item ให้เลือก Windows Forms แล้วคลิกเลือกที่ Splash Screen จากนั้นที่ช่อง Name ตั้งชื่อตามต้องการ สำหรับตัวอย่างจะตั้งชือในช่อง Name ว่า SplashScreen1.vb แล้วทำการคลิกที่ปุ่ม Add ดังภาพ














4. เราก็จะได้ฟอร์ม Splash Screen ฉบับด่วนจี๋ ดังภาพ
















5. จากนั้นทำการคลิกเมาส์ปุ่มขวาที่ ชื่อโปรเจกต์ ในส่วนของ Solution Explorer เลือก รายการ Properties ดังภาพ





















6. ที่หน้าต่าง Properties ตรงส่วนของ Splash Screen ให้เลือกฟอร์ม SplashScree1 ที่เราได้ทำการสร้างไว้ในข้อ 3 หลังจากเลือกแล้วให้คลิกเมาส์ที่ปุ่ม View Application Events ดังภาพ

















7. ทำการป้อนคำสั่งในส่วนของ Application Events ดังนี้ (อ้างอิงจาก http://www.sourcecodester.com/tutorials/net/how-create-a-splash-screen-vbnet.html)



Namespace My
Partial Friend Class MyApplication

Protected Overrides Function OnInitialize( _
ByVal commandLineArgs As _
System.Collections.ObjectModel.ReadOnlyCollection(Of String)) As Boolean
' Set the display time to 5000 milliseconds (5 seconds).
Me.MinimumSplashScreenDisplayTime = 5000
Return MyBase.OnInitialize(commandLineArgs)
End Function
End Class
End Namespace


จากนั้นคลิกปุ่ม F5 เพื่อทำการเรียกโปรแกรม ก็จะปรากฎ SplashScreen ก่อนที่จะเข้าสู่ระบบงานของเรา

21 สิงหาคม 2553

.NET development environment for Linux

เอาไว้ศึกษาเกี่ยวกับ Table (elbaT) ใน vb.net

http://vb.net-informations.com/datagridview/vb.net_datagridview_database.htm

http://www.codeproject.com/KB/grid/practicalguidedatagrids1.aspx#_Toc56951001


ศึกษาเกี่ยวกับ .Net & Linux

http://mono-project.com/Main_Page

VB.Net Example
vb2005
http://msdn.microsoft.com/en-us/vbasic/ms789075.aspx#winforms
vb2008
http://code.msdn.microsoft.com/vb2008samples
vb2010
http://code.msdn.microsoft.com/vb2010samples

VB.Net connect to vfp data
'TODO: This line of code loads data into the 'DataSet1.table1' table. You can move, or remove it, as needed.
''Me.Table1TableAdapter.Fill(Me.DataSet1.table1)
'' http://msdn.microsoft.com/query/dev10.query?appId=Dev10IDEF1&l=EN-US&k=k%28EHINDEXOUTOFRANGE%29;k%28TargetFrameworkMoniker-%22.NETFRAMEWORK%2cVERSION%3dV4.0%22%29;k%28DevLang-VB%29&rd=true

Dim ConnectionString As String

ConnectionString = "Provider = VFPOLEDB;Data Source=D:\;Mode=Read;Collating Sequence=MACHINE;"

''"Provider=Microsoft.Jet.OLEDB.4.0;" & _
'' "Data Source=D:\;Extended Properties=dBase IV"
Dim dBaseConnection As New System.Data.OleDb.OleDbConnection(ConnectionString)
dBaseConnection.Open()

Dim dBaseCommand As New System.Data.OleDb.OleDbCommand("SELECT * FROM TABLE1", dBaseConnection)
Dim dBaseDataReader As System.Data.OleDb.OleDbDataReader = dBaseCommand.ExecuteReader(CommandBehavior.SequentialAccess)

While dBaseDataReader.Read
'MessageBox.Show(dBaseDataReader.FieldCount.ToString)
Console.WriteLine(dBaseDataReader.Item(0).ToString)
Console.WriteLine(dBaseDataReader.Item(1).ToString)
Console.WriteLine(dBaseDataReader.Item(2).ToString)
Console.WriteLine(dBaseDataReader.Item(3).ToString)
'Console.WriteLine(dBaseDataReader("Column1").ToString)
'Console.WriteLine(dBaseDataReader("Column2").ToString)
'Console.WriteLine(dBaseDataReader("Column3").ToString)
End While

dBaseConnection.Close()

19 สิงหาคม 2553

สร้างโปรแกรมดูทีวีออนไลน์ ฟังวิทยุออนไลน์ ด้วย VB.Net

หลายท่านคงเคยได้ดูทีวี หรือฟังวิทยุ ผ่านทางเว็บเบราว์เซอร์ กันมาบ้าง แล้วถ้าเราจะทำใช้เองด้วย VB.Net ล่ะ โอย ง่ายมาก ๆ เรามาดูขั้นตอนการทำเลย ถ้าใครมี Visual Studio .Net รุ่นใหนก็ใช้ได้หมด หรือ ถ้าท่านใดมี Visual Basic รุ่น Express ก็ใช้ได้ไม่มีปัญหา
สำหรับตัวอย่าง จะใช้ Visual Basic 2008 Express Edition (ของฟรีดาวน์โหลดมาใช้ได้เลย ไม่ต้องกลัวเรื่องลิขสิทธิ์)

1. เปิดโปรแกรม VB 2008
2. คลิกทีเมนู File เลือก New Project
3. เลือก Windows From Application จากนั้น ตรงช่อง Name ป้อนชื่อว่า myTV แล้วคลิกปุ่ม OK









4. ที่ form1 ให้ลาก MenuStrip จาก Toolbox มาวางไว้ที่ฟอร์ม จากนั้นก็กำหนดหัวข้อเมนูดังภาพ
















5. หลังจากกำหนดรายการในเมนูเป็นที่เรียบร้อย ให้เอาเมาส์มาคลิกทีฟอร์มในตำแหน่งว่าง ๆ สักครั้ง จากนั้นไปที่เมนู Tools เลือกรายการ Choose Toolbox Items.... รอสักพัก
จะปรากฎหน้าต่าง Choose Toolbox Items ให้คลิกที่แทปชื่อ COM Components จากนั้นให้เลือกรายการ Windows Media Player โดยคลิกด้านหน้าให้มีเครื่องหมายถูก จากนั้นก็ไปคลิกปุ่ม OK
















จากนั้นก็นำเมาส์ไปคลิกที่ฟอร์ม ก็จะได้ Control ของ Windows Media Player มาปรากฎที่ฟอร์ม









** คอนโทรล ตามตัวอย่างของผู้เขียนจะมีชื่อ AxWindowsMediaPlayer1

6. ย้อนมาที่เมู ที่เราสร้างไว้ เราจะมาทำการเขียนคำสั่งกัน โดยไปคลิกที่เมนูที่ต้องการเช่น ดูทีวี จะเห็นรายการย่อย ให้ double click ที่รายการย่อย เช่นTPBS จะเข้าสู่หน้าเขียนคำสั่ง ของเมนูรายการ TPBS โดยเขียนคำสั่งดังนี้ (ตามภาพด้านล่าง)






** จากนั้นก็ทำทุก ๆ ช่อง เราสามารถหา link สำหรับดูทีวีช่องต่าง ๆ ได้ตาม เว็บไซต์ทั่วไป
** ถ้าจะฟังวิทยุ ก็ทำลักษณะเดียวกัน

ทำการ build project หรือลองทดสอบ โดยกดปุ่ม F5 เพื่อสั่ง ให้ฟอร์มเปิดทำงาน
ผลที่ได้ดังภาพ



















ปล. สำหรับการหาช่องทีวีต่าง ๆ ให้ไปเปิดดูที่เว็บเจ้าของช่องรายการนั้น ๆ เช่น Thai PBS
ให้เข้าที่เว็บไซต์ http://www.thaipbs.or.th/Live/
จะขึ้นหน้าจอทีวี ให้คลิกขวาที่หน้าจอทีวี ดังภาพ























จะปรากฎหน้าต่าบ Option เราจะเห็น Link สำหรับนำไปอ้างในโปรแกรมของเรา ดังภาพ

























สำหรับช่อง อื่น ๆ ก็ทำลักษณะเดียวกัน


สวัสดี มีทีวีดูทั้งปี

23 กรกฎาคม 2553

เครื่องมือสำหรับคนไกลบ้าน

หลายคนที่ไปต่างประเทศคงประสบปัญหาหลาย ๆ ประการเช่น ไปใช้คอมพิวเตอร์บ้านเขาซึ่งไม่มีคีย์บอร์ดภาษาไทยหรือ อยากโทรกลับมาหาครอบครัวที่ประเทศไทย บทความนี้มีคำตอบ


โปรแกรมพิมพ์ภาษาไทย
 

https://www.puttipan.com/thaikeyboard/



















โปรแกรมโทรฟรี(ปิดให้บริการไปแล้ว)

ปัญหาหลักของคนไกลบ้านคือจะโทรกลับมาบ้านได้อย่างไร
1.ซื้อบัตรโทรศัพท์ซิ ซื้อมาแล้ว แต่ใช้ไม่ได้ เผอิญผู้เขียนได้เดินทางไปในที่ ๆ หาโทรศัพท์สาธารณะไม่ได้เลย ซวย เสียเงินฟรี ดันไปอยู่กลางหุบเขา คนที่นั่นเขาใช้มือถือกันหมด (อ่านต่อข้อ 2)

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

3.ดีน่ะที่ยังมี internet ให้ใช้ เราก็สามารถโทรกลับบ้านได้แล้ว เสียงดีไม่มีตก จะใช้ msn ก็ chat ได้แต่เชย ลำบากตรงผู้รับต้องมี net ด้วยดิ แล้วถ้าบ้านใคร มีญาติพี่น้องใช้เน็ตไม่เป็นก็อด แต่ยังดีมีก๊อกสอง โปรแกรมโทรฟรี ทรูมูฟ เขาจัดให้


ก่อนอื่นต้องหาโปรแกรมก่อน ชื่อโปรแกรื onAnyWhere

ถ้าเขายังไม่ปิดหรือยกเลิกการ d/l ซะก่อน ก็สามารถเข้าไป ดาวน์โหลดได้ที่

คลิกเพื่อดาวน์โหลดโปรแกรมโทรฟรี

จากนั้นทำการติดตั้งโปรแกรม

1.ลงโปรแกรมโทรฟรี (onAnyWhere)

2.ลงเสร็จแล้วเปิดโปรแกรม

3.รอสักพัก โปรแกรมจะขึเนมาเป็นรูปโทรศัพท์

4.กด singup ด้านซ้ายล่าง





















5.หน้าลงทะเบียน ก็ใส่รายละเอียดเข้าไป ควรสมัครไว้มากกว่า 1 ไอดี ยิ่งเยอะยิ่งดี เพราะไอดี หนึ่ง ๆ คุยได้ไม่เกิน 30 นาที ถ้าหมดก็ต้องเสียเงิน ใครไม่ยากเสียเงินก็สมัครไว้หลาย ๆ ไอดี เข้าใจ๋
















6 เมื่อสมัครเสร็จก็จะได้ไอดีสำหรับนำไป sign in เพื่อโทรฟรีไปหาเบอร์โทรศัพท์บ้าน หรือเบอร์มือถือได้ทั่วไป ใครอยู่ต่างประเทศ ไม่ต้องใส่รหัสประเทศนะ เอาเบอร์ปรกติที่เราใช้งาน หมุดไปได้เลยเ





















7. เราก็จะได้โทรศัพท์ใช้โทรเข้าไทย แบบสบายกระเป๋า มีเงินเหลือไปซื้อของฝาก

โชคดีกลับบ้านโดยสวัสดิภาพ

24 กุมภาพันธ์ 2553

Saving changes is not permitted.

การแก้ปัญหา เวลาแก้ไขโครงสร้างของตารางใน SQL Server แล้วไม่สามารถบันทึกได้

สำหรับผู้ที่ใช้ SQL Server 2008 หรือสูงกว่า เมื่อเราสร้างตารางแล้วบันทึกตารางเก็บไว้ในฐานข้อมูล เมื่อเวลาผ่านไป เรามีความจำเป็นต้องนำตารางที่สร้างไว้มาทำการแก้ไขโครงสร้าง เสร็จแล้วก็ทำการบันทึก ทำเท่าไหร่ก็บันทึกไม่ได้ เราจะจ๊ะเอ๋กับ หน้าต่างที่มีข้อความ ดังภาพ
















วิธีแก้ไข


ที่ SQL Management Studio เลือกเมนู Tools เลือก Options....
ไปที่ Designers เลือก Table and Databases Designers
จากนั้นเอาเครื่องหมาย ถูก ที่หน้า Prevent saving changes that require table re-creation ออก












แล้วคลิกปุ่ม OK เป็นอันเรียบร้อย สามารถแก้ไขแล้วบันทึกโครงสร้างได้ตามชอบใจ

ขอให้คนอ่านดวงดีทั้งปี

14 มกราคม 2553

การติดตั้ง AJAX กับ Visual Studio 2008

วามสามารถของคอนโทรลต่าง ๆ ของ ASP.NET ที่มากับ Visual Studio 2008 ยังธรรมดาอยู่มาก ๆ เราสามารถเสริมเขี้ยวเล็บให้กับคอนโทรต่าง ๆ ให้มากขึ้นก็ต้องอาศัยตัว AJAX ซึ่งจริง ๆ แล้ว AJAX มีมา-นม-นาน (อย่าอ่านเป็น นม-ยาน น่ะ) การติดตั้งและเรียกใช้งานในแต่ละเวอร์ชันก็ต่างกันไปบ้าง พอเป็นกะษัยให้ปวดหัว แต่รับรองว่าไม่ยากอย่างที่คิด สำหรับใครที่ติดตั้งและใช้งาน Visual Studio 2008 หรือ VWD 2008 Express อยู่แล้วก็สามารถติดตั้ง AJAX เพิ่มเติมได้เลย

ก่อนอื่น ต้องไป Download ตัวโปรแกรม AJAX Control Toolkit จากเว็บไซต์
http://ajaxcontroltoolkit.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=36097

เมื่อได้ไฟล์ ASP.NET Ajax Library มาแล้วให้ทำการแตกไฟล์ออกมาแล้วบันทึกเก็บไว้ที่ไดร์ฟและโฟลเดอร์ที่ถูกใจ (อันนี้ตั้งชื่อเอาเอง) unzip เสร็จจะได้ไฟล์ต่าง ๆ ดังภาพ



การนำเอา AJAX ToolKit มาใช้กับเว็บไซต์

** ถ้าเริ่มสร้างเว็บไซต์ใหม่ ให้ทำข้อ 1 - 3 แต่ถ้ามีอยู่แล้วให้ข้ามไปทำข้อ 4 ได้เลย
1. เปิดโปรแกรม Visual Web Developer 2008 Express หรือ Visual Studio 2008
2. คลิกเมนู File ---> New Web Site
3. เลือก ASP.Net Web Site ตรงช่อง Location: กำหนดตำแหน่งของโฟล์เดอร์ที่เก็บเว็บไซต้ตามต้องการ แล้วคลิกปุ่ม OK

4. ทำการเพิ่มแทปใน Toolbox โดยไปที่หน้าต่าง Toolbox แล้วคลิกเมาส์ปุ่มขวา เลือก Add Tab























5. ตั้งชื่อแทปตามต้องการ เช่น ASP.NET Ajax Library แล้วกดปุ่ม Enter

6. คลิกเมาส์ปุ่มขวาที่ ASP.NET Ajax Library แล้วเลือก Choose Item...























7. ที่หน้าต่าง Choose Toolbox Items คลิกที่ปุ่ม Browse...
















8. เลือกไฟล์ AjaxcontrolTookit.dll ที่เราได้ทำการ unzip ไว้ในตอนแรก จากนั้นคลิกปุ่ม OPen จากนั้น ที่หน้าต่าง Choose Toolbox Items คลิกปุ่ม OK















9. เราก็จะได้เห็นกับรายการคอนโทรลต่าง ๆ ของ AJAX ปรากฎขึ้นมาภายใต้ รายการ ASP.NET Ajax Library ถือว่าเป็นอันเสร็จพิธีสำหรับการนำ Ajax เข้ามาไว้ในเว็บไซต์เรา
























การใช้งาน AJAX ToolKit กับหน้าเว็บเพ็จ


ที่หน้าเว็บเพ็จทุกเพ็จที่ต้องการใช้ AJAX จะต้องมี ToolkitScriptManager อยู่ในหน้าเพ็จด้วย
ตัวอย่างการ เรียกใช้ปฎิทินภายใต้เท็กซ์บ็อกซ์
1. ลากคอนโทรลชื่อ ToolKitScriptManager มาไว้ที่หน้าเพ็จ



















2. จากนั้นลาก TextBox มาไว้ที่หน้าเพ็จ คลิกปุ่มเปิด TextBox Tasks เลือ Add Extender...














3. ที่หน้าต่าง Extender Wizard เลือกรายการ Calendar Extender แล้วคลิกปุ่ม OK















4. กดปุ่ม Ctrl + F5 เพื่อเรียกหน้าเว็บเพ็จ แล้วลองคลิกเมาส์ที่เท็กซ์บ๊อกซ์ ก็จะปรากฎปฎิทิน

สวัสดี มีอาเจ๊กให้ใช้งาน ขอให้เก่ง ๆ ๆ ๆ ๆ
"I Believe in You"

Copyright(c) 2007 - 2022 by Kasem Kamolchaipisit.