Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 108,426

HOME > .NET Framework > .NET Windows Form Application เขียนโปรแกรมบน Windows Form Application ด้วย .NET Framework




Clound SSD Virtual Server

.NET Windows Form Application เขียนโปรแกรมบน Windows Form Application ด้วย .NET Framework

 
  .NET Windows Form Application เขียนโปรแกรมบน Windows Form Application ด้วย .NET Framework ใน Application บน Visual Studio นั้น Windows Form ถือเป็น Project พื้นฐานที่สามารถพัฒนาโปรแกรมที่ทำงานบน Windows ได้ง่ายและรวดเร็วที่สุดก็ว่าได้ เพราะเป็นการออกแบบรูปแบบ GUI การใส่ Control หรือกำหนด Event ต่าง ๆ ก็สามารถสร้างเหตุการณ์ต่าง ๆ ได้จาก Properties ของ Control และเค้าโครงการเขียนนั้นก็มีพื้นฐานมาจากภาษา Visual Basic 6.0 ซึ่งจุดนี้เอง นักโปรแกรมเมอร์ที่พัฒนาโปรแกรมด้วย VB6 มาก่อนหน้านี้ก็สามารถต่อยอดการเขียนได้อย่างง่ายดาย รวมทั้งรูปแบบคำสั่งที่เป็นภาษา (VB.NET) ก็ไม่ได้ยากอะไรมากมาย ซึ่งใน .NET Framework นี้เราสามารถพัฒนาโปรแกรมให้มีความสามารถและการทำงานได้หลากหลาย และยังสามารถเขียนเพื่อใช้งานร่วมกับ Application อื่น ๆ ที่พัฒนาด้วย .NET Framework ได้เช่นเดียวกัน

สำหรับบทความนี้มีทั้งที่เป็นภาษา VB.NET และ C# ครับ สามารถเลือกอ่านได้ตามความถนัดได้เลย

Framework : 1,2,3,4

Language Code : VB.NET || C#


ในตัวอย่างนี้ผมได้ใช้ Tool ของ Visual Studio 2008 บน .NET Framework 3.5

ให้เปิด Tool ขึ้นมาพร้อมกับ New Project

.NET Windows Form Application


เลือกภาษาที่ใช้พัฒนา และเลือก Windows Form Application พร้อมกับตั้งชื่อ Project


.NET Windows Form Application

ไฟล์ Default จะถูกสร้างให้อัตโนมัติ ประมาณ 2-3 ไฟล์ ทั้งนี้หากไม่ต้องการ Form ที่เป็น Default ก็สามารถลบทิ้งได้เช่นเดียวกัน


.NET Windows Form Application

การเพิ่ม Form ใหม่สามารถเพิ่มได้จากการคลิกขวาที่ Project -> Add -> New Item...


.NET Windows Form Application

เลือก Windows Form


.NET Windows Form Application

กรณีที่เป็น VB.NET ให้คลิกขวาที่ Project เลือก Properties เพื่อกำหนดค่า Startup Project

.NET Windows Form Application

ตรง Startup form: เลือก Sub ที่ต้องการให้ทำงานแรกสุดเมื่อโปรแกรมทำงาน








ในตัวอย่างนี้มีการเรียกใช้งาน Database ของ SqlServerCe ด้วย

.NET Windows Form Application

ให้คลิกขวที่ Project -> Add -> New Item...


.NET Windows Form Application

เลือก Database File จาก Local Database พร้อมกับกำหนดชื่อ Database ด้วย


.NET Windows Form Application

Database ถุกสร้างขึ้นมาแล้ว


.NET Windows Form Application

ทดสอบการสร้าง Table โดยไปที่ Server Explorer (อยู่ด้านซ้าย) คลิกที่ Database ที่เราสร้างขึ้นมา


.NET Windows Form Application

และภายใต้ Table ให้คลิกขวาเลือก Create Table ให้สร้างตารางชื่อ mytable โดยมีฟิว์ id,name,email (id เป็น primary key และ IdentityIncrement) และ save ถือเป็นเสร็จสิ้นการสร้าง Table


กรณีใช้ Database อื่น ๆ สามารถอ่านได้ที่
- System.Data.OleDb สำหรับ Ms Access หรืออื่น ๆ ที่ผ่าน OleDb
- System.Data.SqlClient สำหรับ Microsoft SQL Server
- System.Data.OracleClient สำหรับ Oracle Database
- MySql.Data.MySqlClient สำหรับ MySQL Database
- System.Data.Odbc ใช้สำหรับ Database เกือบทุกประเภทที่ใช้งานบน Platform Windows


.NET Windows Form Application

ตารางชื่อ mytable ถูกสร้างขึ้นมาแล้ว




ในตัวอย่างนี้จะประกอบด้วย 4 Form คือ
1. frmMain เป็นหน้าแรกของ Application
2. frmHome เป็นหน้าหลักของโปรแกรมใช้ DataGrid สำหรับเรียกข้อมูลมาแสดง (เพื่อลิงค์ไปยังการ เพิ่ม/แก้ไข/ลบ ข้อมูล)
3. frmAdd เป็นหน้าสำหรับเพิ่มข้อมูล
4. frmEdit เป็นหน้าสำหรับแก้ไขข้อมูล


frmMain

.NET Windows Form Application

Public Class frmMain
    'By https://www.thaicreate.com (mr.win)'
    Private Sub btnHome_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnHome.Click
        Me.Hide()
        Dim f As New frmHome
        f.Show()
    End Sub


    Private Sub btnExit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnExit.Click
        If MessageBox.Show("Are you sure to exit?", "Confirm.", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) = DialogResult.Yes Then
            Application.Exit()
        End If
    End Sub
End Class



frmHome

.NET Windows Form Application

Imports System.Data
Imports System.Data.SqlServerCe
Imports System.Data.SqlTypes
Imports System.Drawing
Imports System.ComponentModel
Imports System.Windows.Forms

Public Class frmHome
    'By https://www.thaicreate.com (mr.win)'
    Private Sub frmHome_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        BindDataGrid()
    End Sub

    Private Sub BindDataGrid()

        Dim myConnection As SqlCeConnection
        Dim dt As New DataTable
        Dim Adapter As SqlCeDataAdapter
        'myConnection = New SqlCeConnection("Data Source =" + (System.IO.Path.GetDirectoryName( System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase ) + "\Database1.sdf;"))
        myConnection = New SqlCeConnection("Data Source=C:\WindowsFormsApplication\WindowsFormsApplication\Database1.sdf;")
        myConnection.Open()
        Dim myCommand As SqlCeCommand = myConnection.CreateCommand()
        myCommand.CommandText = "SELECT [id], [name], [email] FROM [mytable]"
        myCommand.CommandType = CommandType.Text

        Adapter = New SqlCeDataAdapter(myCommand)
        Adapter.Fill(dt)

        myConnection.Close()

        Me.dgName.DataSource = dt

        Me.dgName.Columns.Clear()

        Dim column As DataGridViewTextBoxColumn

        column = New DataGridViewTextBoxColumn()
        column.DataPropertyName = "id"
        column.HeaderText = "ID"
        column.Width = 50
        Me.dgName.Columns.Add(column)

        column = New DataGridViewTextBoxColumn()
        column.DataPropertyName = "name"
        column.HeaderText = "Name"
        column.Width = 100
        Me.dgName.Columns.Add(column)

        column = New DataGridViewTextBoxColumn()
        column.DataPropertyName = "email"
        column.HeaderText = "Email"
        column.Width = 150
        Me.dgName.Columns.Add(column)

        dt = Nothing

    End Sub

    Private Sub btnAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAdd.Click
        Me.Hide()
        Dim f As New frmAdd
        f.Show()
    End Sub

    Private Sub btnEdit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEdit.Click
        Me.Hide()
        Dim f As New frmEdit()
        f._strID = Me.dgName(0, Me.dgName.CurrentCell.RowIndex).Value.ToString()
        f.Show()
    End Sub

    Private Sub btnDel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDel.Click
        If MessageBox.Show("Are you sure to delete?", "Confirm.", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) = DialogResult.Yes Then

            Dim strID As String = Me.dgName(0, Me.dgName.CurrentCell.RowIndex).Value.ToString()

            Dim myConnection As SqlCeConnection
            'myConnection = New SqlCeConnection("Data Source =" + (System.IO.Path.GetDirectoryName( System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase ) + "\Database1.sdf;"))
            myConnection = New SqlCeConnection("Data Source=C:\WindowsFormsApplication\WindowsFormsApplication\Database1.sdf;")
            myConnection.Open()
            Dim myCommand As SqlCeCommand = myConnection.CreateCommand()
            myCommand.CommandText = "DELETE FROM [mytable] WHERE id = '" & strID & "'"
            myCommand.CommandType = CommandType.Text
            myCommand.ExecuteNonQuery()
            myConnection.Close()
            MessageBox.Show("Delete Successfully")

            BindDataGrid()
        End If
    End Sub

    Private Sub btnExit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnExit.Click
        Me.Hide()
        Dim f As New frmMain
        f.Show()
    End Sub

End Class









frmAdd

.NET Windows Form Application

Imports System.Data
Imports System.Data.SqlServerCe
Imports System.Data.SqlTypes
Imports System.Drawing
Imports System.ComponentModel
Imports System.Windows.Forms

Public Class frmAdd
    'By https://www.thaicreate.com (mr.win)'
    Private Sub btnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSave.Click
        If Me.txtName.Text = "" Then
            MessageBox.Show("Please input (Name)")
            Me.txtName.Focus()
            Exit Sub
        End If

        If Me.txtEmail.Text = "" Then
            MessageBox.Show("Please input (Email)")
            Me.txtEmail.Focus()
            Exit Sub
        End If

        Dim myConnection As SqlCeConnection
        'myConnection = New SqlCeConnection("Data Source =" + (System.IO.Path.GetDirectoryName( System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase ) + "\Database1.sdf;"))
        myConnection = New SqlCeConnection("Data Source=C:\WindowsFormsApplication\WindowsFormsApplication\Database1.sdf;")
        myConnection.Open()
        Dim myCommand As SqlCeCommand = myConnection.CreateCommand()
        myCommand.CommandText = "INSERT INTO [mytable] ([name], [email]) VALUES  " & _
        " ('" & Me.txtName.Text & "','" & Me.txtEmail.Text & "' ) "
        myCommand.CommandType = CommandType.Text
        myCommand.ExecuteNonQuery()
        myConnection.Close()

        MessageBox.Show("Save Successfully.")

        Me.Hide()
        Dim f As New frmHome
        f.Show()
    End Sub

    Private Sub btnExit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnExit.Click
        Me.Hide()
        Dim f As New frmHome
        f.Show()
    End Sub
End Class



frmEdit

.NET Windows Form Application

Imports System.Data
Imports System.Data.SqlServerCe
Imports System.Data.SqlTypes
Imports System.Drawing
Imports System.ComponentModel
Imports System.Windows.Forms

Public Class frmEdit
    'By https://www.thaicreate.com (mr.win)'
    Dim strID As String = ""

    Public Property _strID() As String
        Get
            Return strID
        End Get
        Set(ByVal value As String)
            strID = value
        End Set
    End Property

    Private Sub frmEdit_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim myConnection As SqlCeConnection
        Dim dt As New DataTable
        Dim Adapter As SqlCeDataAdapter
        'myConnection = New SqlCeConnection("Data Source =" + (System.IO.Path.GetDirectoryName( System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase ) + "\Database1.sdf;"))
        myConnection = New SqlCeConnection("Data Source=C:\WindowsFormsApplication\WindowsFormsApplication\Database1.sdf;")
        myConnection.Open()
        Dim myCommand As SqlCeCommand = myConnection.CreateCommand()
        myCommand.CommandText = "SELECT [id], [name], [email] FROM [mytable] WHERE id = '" & strID & "' "
        myCommand.CommandType = CommandType.Text

        Adapter = New SqlCeDataAdapter(myCommand)
        Adapter.Fill(dt)

        myConnection.Close()

        If dt.Rows.Count > 0 Then
            Me.txtName.Text = dt.Rows(0)("name")
            Me.txtEmail.Text = dt.Rows(0)("email")
        End If

        dt = Nothing
    End Sub


    Private Sub btnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSave.Click
        If Me.txtName.Text = "" Then
            MessageBox.Show("Please input (Name)")
            Me.txtName.Focus()
            Exit Sub
        End If

        If Me.txtEmail.Text = "" Then
            MessageBox.Show("Please input (Email)")
            Me.txtEmail.Focus()
            Exit Sub
        End If

        Dim myConnection As SqlCeConnection
        'myConnection = New SqlCeConnection("Data Source =" + (System.IO.Path.GetDirectoryName( System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase ) + "\Database1.sdf;"))
        myConnection = New SqlCeConnection("Data Source=C:\WindowsFormsApplication\WindowsFormsApplication\Database1.sdf;")
        myConnection.Open()
        Dim myCommand As SqlCeCommand = myConnection.CreateCommand()
        myCommand.CommandText = "UPDATE [mytable] SET " & _
        " [name] = '" & Me.txtName.Text & "', [email] = '" & Me.txtEmail.Text & "'  " & _
        " WHERE id = '" & strID & "' "
        myCommand.CommandType = CommandType.Text
        myCommand.ExecuteNonQuery()
        myConnection.Close()

        MessageBox.Show("Update Successfully")

        Me.Hide()
        Dim f As New frmHome
        f.Show()
    End Sub

    Private Sub btnExit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnExit.Click
        Me.Hide()
        Dim f As New frmHome
        f.Show()
    End Sub

End Class





ทดสอบการรันโปรแกรม

.NET Windows Form Application

โดยคลิกที่ Startup Debugging


.NET Windows Form Application


หน้าจอหลัก


.NET Windows Form Application

หน้า Home ซึ่งใช้ DataGridView เพื่อดึงข้อมูลออกมาแสดง


.NET Windows Form Application

หน้าสำหรับเพิ่มข้อมูล


.NET Windows Form Application

เลือก Record และ คลิก Edit เพื่อแก้ไข


.NET Windows Form Application

หน้าสำหรับแก้ไขข้อมูล


.NET Windows Form Application

การลบข้อมูล

สำหรับตัวอย่างทั้งหมดนี้สามารถดาวน์โหลด Code ได้จากข้างล่าง โดยมีทั้งภาษา VB.NET และ C# และบทความนี้เป็นเพียงการสอนเบื้องต้นเท่านั้น เพื่อเป็นพื้นฐานในการต่อยอดในการพัฒนาโปรแกรมที่มีความซับซ้อนและการใช้งานที่หลากหลาย




       
Bookmark.   
       

 

  By : TC Admin
  Score Rating : -
  Create Date : 2010-09-02 21:19:54
  Download : Download  .NET Windows Form Application  เขียนโปรแกรมบน Windows Form Application ด้วย .NET Framework (1.70 MB)
     

Clound SSD Virtual Server
-->
Related Links
VB.NET/C# Login Check Username Password
VB.NET/C# Login Check Username Password
สร้างระบบล็อกอิน Login Form ตรวจสอบสิทธิ์ของ Username และ Password ก่อนจะเข้าสู่โปรแกรม
Rating :
Update :
2012-02-27 13:25:22 View : 23,211
ADO.NET and Oracle  (VB.NET/C#) เขียนโปรแกรมติดต่อกับฐานข้อมูล Oracle Database
ADO.NET and Oracle (VB.NET/C#) เขียนโปรแกรมติดต่อกับฐานข้อมูล Oracle Database
ADO.NETกับฐานข้อมูล Oracle การสร้าง Connection String และการเชื่อมต่อผ่าน TNS Name
Rating :
Update :
2017-03-24 21:28:07 View : 19,753
.NET Windows Form กับการส่งอีเมล์ (Send Mail) แบบง่าย ๆ ด้วย System.Net.Mail (VB.NET , C#)
.NET Windows Form กับการส่งอีเมล์ (Send Mail) แบบง่าย ๆ ด้วย System.Net.Mail (VB.NET , C#)
ง่าย ๆ กับ .NET Framework การเขียน Windows Form ส่งอีเมล์ แบบง่าย ๆ ด้วย Namespace ของ System.Net.Mail
Rating :
Update :
2017-03-17 22:15:41 View : 16,464
ติดตั้ง Crystal Report ลงใน Tab Reporting บน Visual Studio 2010 (.NET 4.0)
ติดตั้ง Crystal Report ลงใน Tab Reporting บน Visual Studio 2010 (.NET 4.0)
วิธีการติดตั้ง tools ของ crystal report บน visual studio 2010 (.net framework 4.0) ซึ่งในเวอร์ชั่นนี้จะไม่มีมาพร้อมกับใน pacakge install จะต้องหาดาวน์โหลดมาติดตั้งเอง
Rating :
Update :
2017-03-24 21:31:07 View : 69,544
ติดตั้ง Crystal Report ให้กับ Visual Studio 2012 (.NET 4.5) และเพิ่ม Items Control ลงใน Reporting
ติดตั้ง Crystal Report ให้กับ Visual Studio 2012 (.NET 4.5) และเพิ่ม Items Control ลงใน Reporting
ติดตั้ง crystal report ให้กับ visual studio 2012 ซึ่งปกติตอนที่ทำการ setup โปรแกรม vs 2012 จะไม่มีเป็น package มาให้ แต่จะต้องดาวน์โหลดเพื่อติดตั้งเพิ่มเติม
Rating :
Update :
2017-03-17 21:25:45 View : 46,496
การสร้าง Crystal Report กับ DataSet หรือ DataTable (VB.NET,C#)
การสร้าง Crystal Report กับ DataSet หรือ DataTable (VB.NET,C#)
บทความนี้ Advanced ขึ้นมาอีกนิดสำหรับการสร้าง Report ของ Crystal Report กับ DataSet หรือ DataTable ของ .NET Framework
Rating :
Update :
2017-03-24 21:28:46 View : 113,582
ThaiCreate.Com Forum


Comunity Forum Free Web Script
Jobs Freelance Free Uploads
Free Web Hosting Free Tools

สอน PHP ผ่าน Youtube ฟรี
สอน Android การเขียนโปรแกรม Android
สอน Windows Phone การเขียนโปรแกรม Windows Phone 7 และ 8
สอน iOS การเขียนโปรแกรม iPhone, iPad
สอน Java การเขียนโปรแกรม ภาษา Java
สอน Java GUI การเขียนโปรแกรม ภาษา Java GUI
สอน JSP การเขียนโปรแกรม ภาษา Java
สอน jQuery การเขียนโปรแกรม ภาษา jQuery
สอน .Net การเขียนโปรแกรม ภาษา .Net
Free Tutorial
สอน Google Maps Api
สอน Windows Service
สอน Entity Framework
สอน Android
สอน Java เขียน Java
Java GUI Swing
สอน JSP (Web App)
iOS (iPhone,iPad)
Windows Phone
Windows Azure
Windows Store
Laravel Framework
Yii PHP Framework
สอน jQuery
สอน jQuery กับ Ajax
สอน PHP OOP (Vdo)
Ajax Tutorials
SQL Tutorials
สอน SQL (Part 2)
JavaScript Tutorial
Javascript Tips
VBScript Tutorial
VBScript Validation
Microsoft Access
MySQL Tutorials
-- Stored Procedure
MariaDB Database
SQL Server Tutorial
SQL Server 2005
SQL Server 2008
SQL Server 2012
-- Stored Procedure
Oracle Database
-- Stored Procedure
SVN (Subversion)
แนวทางการทำ SEO
ปรับแต่งเว็บให้โหลดเร็ว


สุดยอด Source Code V2.0
 

แจ้งชำระเงิน/โอนเงิน
 

Hit Link
   







Load balance : Server 00
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2020 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่

Inline