ชุมชนคนรักภาษาเบสิค - Visual Basic Community

 ลืมรหัสผ่าน
 ลงทะเบียน
ค้นหา
ดู: 4048|ตอบกลับ: 1

[VB.NET] การคัดลอกข้อมูลทั้งหมดจากตารางกริด ไปยังตารางกริดอีกตัว

[คัดลอกลิงก์]

308

กระทู้

498

โพสต์

5973

เครดิต

ผู้ดูแลระบบ

ทองก้อน ทับทิมกรอบ

Rank: 9Rank: 9Rank: 9

เครดิต
5973




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



มาดูโค้ดกันเถอะ ...
  1. ' / --------------------------------------------------------------------
  2. ' / Developer : Mr.Surapon Yodsanga (Thongkorn Tubtimkrob)
  3. ' / eMail : thongkorn@hotmail.com
  4. ' / URL: http://www.g2gnet.com (Khon Kaen - Thailand)
  5. ' / Facebook: https://www.facebook.com/g2gnet (For Thailand)
  6. ' / Facebook: https://www.facebook.com/commonindy (Worldwide)
  7. ' / Purpose: Copy rows from One DataGridView To Another One.
  8. ' / Microsoft Visual Basic .NET (2010)
  9. ' /
  10. ' / This is open source code under @CopyLeft by Thongkorn Tubtimkrob.
  11. ' / You can modify and/or distribute without to inform the developer.
  12. ' / --------------------------------------------------------------------
  13. Public Class frmCopyDataGrid

  14.     '// Initialize DataGridView Control.
  15.     Private Sub InitGrid(DGV As DataGridView)
  16.         With DGV
  17.             .AllowUserToAddRows = False
  18.             .AllowUserToDeleteRows = False
  19.             .AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill
  20.             .AutoResizeColumns()
  21.         End With
  22.         '// Declare columns type.
  23.         Dim Column1 As New DataGridViewTextBoxColumn()
  24.         Dim Column2 As New DataGridViewTextBoxColumn()
  25.         Dim Column3 As New DataGridViewTextBoxColumn()
  26.         '// Add new Columns
  27.         DGV.Columns.AddRange(New DataGridViewColumn() { _
  28.                 Column1, Column2, Column3 _
  29.                 })
  30.         With DGV
  31.             .Columns(0).Name = "ID"
  32.             .Columns(1).Name = "Name"
  33.             .Columns(2).Name = "Date"
  34.         End With

  35.     End Sub

  36.     Private Sub frmCopyDataGrid_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
  37.         '// Initialize DataGridView
  38.         Call InitGrid(DataGridView1)
  39.         Call InitGrid(DataGridView2)

  40.         '// SAMPLE DATA
  41.         Dim RandomClass As New Random()
  42.         '// DateTime.Today.AddDays(-RandomClass.Next(365)) --> Random past date 365 days.
  43.         Dim row As String() = New String() {"1", "Product 1", DateTime.Today.AddDays(-RandomClass.Next(365))}
  44.         DataGridView1.Rows.Add(row)
  45.         row = New String() {"2", "Product 2", DateTime.Today.AddDays(-RandomClass.Next(365))}
  46.         DataGridView1.Rows.Add(row)
  47.         row = New String() {"3", "Product 3", DateTime.Today.AddDays(-RandomClass.Next(365))}
  48.         DataGridView1.Rows.Add(row)
  49.         row = New String() {"4", "Product 4", DateTime.Today.AddDays(-RandomClass.Next(365))}
  50.         DataGridView1.Rows.Add(row)

  51.     End Sub

  52.     Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
  53.         '// Clear rows
  54.         DataGridView2.Rows.Clear()
  55.         '// Counts the number of rows in the grid.
  56.         For iRow = 0 To DataGridView1.Rows.Count - 1
  57.             '// Copy the original data in each row to the array variable.
  58.             Dim row As String() = New String() {DataGridView1.Rows(iRow).Cells(0).Value, DataGridView1.Rows(iRow).Cells(1).Value, DataGridView1.Rows(iRow).Cells(2).Value}
  59.             '// Add row in DataGridView2
  60.             DataGridView2.Rows.Add(row)
  61.         Next
  62.     End Sub
  63. End Class
คัดลอกไปที่คลิปบอร์ด


ดาวน์โหลดโค้ดต้นฉบับ VB.NET (2010) ได้ที่นี่

ขออภัย! โพสต์นี้มีไฟล์แนบหรือรูปภาพที่ไม่ได้รับอนุญาตให้คุณเข้าถึง

คุณจำเป็นต้อง ลงชื่อเข้าใช้ เพื่อดาวน์โหลดหรือดูไฟล์แนบนี้ คุณยังไม่มีบัญชีใช่ไหม? ลงทะเบียน

x
สิ่งที่ดีกว่าการให้ คือการให้แบบไม่มีที่สิ้นสุด

308

กระทู้

498

โพสต์

5973

เครดิต

ผู้ดูแลระบบ

ทองก้อน ทับทิมกรอบ

Rank: 9Rank: 9Rank: 9

เครดิต
5973
 เจ้าของ| โพสต์ 2018-4-5 11:19:20 | ดูโพสต์ทั้งหมด




กลวิธีการ Clone คือการคัดลอกคุณสมบัติ (Properties) ของต้นฉบับมา ไม่ได้คัดลอกข้อมูลในแต่ละเซลล์มานะครับ เราทดสอบง่ายๆด้วยการกำหนดค่าใน DataGridView1 (ต้นฉบับ) ...
  1.         With DataGridView1
  2.             .Rows(0).Cells(1).Style.BackColor = Color.Coral
  3.         End With
คัดลอกไปที่คลิปบอร์ด



แก้ไขในเหตุการณ์กดปุ่ม Button1_Click()
  1.         DataGridView2.Rows.Clear()
  2.         For Each row As DataGridViewRow In DataGridView1.Rows
  3.             Dim sRow = CType(row.Clone(), DataGridViewRow)
  4.             For Each cell As DataGridViewCell In row.Cells
  5.                 sRow.Cells(cell.ColumnIndex).Value = cell.Value
  6.             Next
  7.             DataGridView2.Rows.Add(sRow)
  8.         Next
คัดลอกไปที่คลิปบอร์ด

สิ่งที่ดีกว่าการให้ คือการให้แบบไม่มีที่สิ้นสุด

0

กระทู้

58

โพสต์

10

เครดิต

Member

Rank: 2

เครดิต
10
โพสต์ 2022-10-25 19:16:35 | ดูโพสต์ทั้งหมด

ขอบคุณครับ
ขออภัย! คุณไม่ได้รับสิทธิ์ในการดำเนินการในส่วนนี้ กรุณาเลือกอย่างใดอย่างหนึ่ง ลงชื่อเข้าใช้ | ลงทะเบียน

รายละเอียดเครดิต

ข้อความล้วน|อุปกรณ์พกพา|ประวัติการแบน|G2GNet.com  

GMT+7, 2024-3-29 13:49 , Processed in 0.094177 second(s), 4 queries , File On.

Powered by Discuz! X3.4, Rev.62

Copyright © 2001-2020 Tencent Cloud.

ตอบกระทู้ ขึ้นไปด้านบน ไปที่หน้ารายการกระทู้