DataGridView trong Winform c#

Trong WinForms, DataGridView là một điều khiển (control) mạnh mẽ giúp hiển thị và tương tác với dữ liệu trong một bảng.

  1. Thêm DataGridView vào Form
  2. Cấu hình DataGridView
  3. Code để nạp dữ liệu vào DataGridView trong C#
  4. Tính năng mở rộng của DataGridView trong C#
  5. Một số tính năng khác của DataGridView

Điều khiển DataGridView trong winform để hiển thị dữ liệu dạng bảng(nhiều dòng, nhiều cột) ra giao diện.

Bạn có thể sử dụng nó để hiển thị dữ liệu dưới dạng bảng, cho phép người dùng chỉnh sửa, xoá, thêm dòng, sắp xếp, và tìm kiếm dữ liệu.

 DataGridView trong Winform c#

 

Dưới đây là hướng dẫn sử dụng DataGridView trong WinForms bằng C# để hiển thị dữ liệu

1. Thêm DataGridView vào Form

    Mở Visual Studio và tạo một ứng dụng WinForms mới.
    Chuyển qua phần thiết kế (Designer)
    Trong cửa sổ thiết kế (Designer), kéo thả một DataGridView từ Toolbox vào Form.

2. Cấu hình DataGridView

Giả sử bạn có một bảng dữ liệu đơn giản về "Nhân viên" với các trường như "ID", "Tên", "Tuổi" và "Địa chỉ". Bạn có thể tạo một DataTable và liên kết nó với DataGridView.

3. Code để nạp dữ liệu vào DataGridView trong C#

using System;
using System.Data;
using System.Windows.Forms;

namespace DataGridViewExample
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            // Tạo DataTable
            DataTable dataTable = new DataTable();

            // Thêm các cột vào DataTable
            dataTable.Columns.Add("ID", typeof(int));
            dataTable.Columns.Add("Tên", typeof(string));
            dataTable.Columns.Add("Tuổi", typeof(int));
            dataTable.Columns.Add("Địa chỉ", typeof(string));

            // Thêm một vài dòng dữ liệu mẫu
            dataTable.Rows.Add(1, "Nguyễn Văn A", 30, "Hà Nội");
            dataTable.Rows.Add(2, "Trần Thị B", 25, "TP. HCM");
            dataTable.Rows.Add(3, "Lê Văn C", 28, "Đà Nẵng");

            // Liên kết DataTable với DataGridView
            dataGridView1.DataSource = dataTable;
        }
    }
}

* Giải thích code trên như sau:

    Tạo DataTable: Trong ví dụ trên, chúng ta tạo một đối tượng DataTable với các cột là "ID", "Tên", "Tuổi", và "Địa chỉ".
    Thêm Dữ liệu: Sau đó, bạn thêm một số dòng dữ liệu vào bảng.
    Liên kết DataGridView với DataTable: Cuối cùng, chúng ta gán DataTable làm nguồn dữ liệu cho DataGridView bằng cách sử dụng thuộc tính DataSource.

4. Tính năng mở rộng của DataGridView trong C#

    Chỉnh sửa dữ liệu: DataGridView mặc định cho phép người dùng chỉnh sửa các ô dữ liệu nếu bạn không vô hiệu hóa chế độ chỉnh sửa.
    Thêm, xóa, và sửa dữ liệu: Bạn có thể thêm các tính năng để thêm, xóa, hoặc chỉnh sửa dữ liệu trực tiếp trong DataGridView.
    Sắp xếp và lọc dữ liệu: DataGridView hỗ trợ sắp xếp và lọc dữ liệu ngay lập tức khi người dùng nhấp vào tiêu đề cột.

5. Một số tính năng khác của DataGridView

Thêm sự kiện trong DataGridView

Bạn có thể thêm các sự kiện như CellClick, RowValidated, UserDeletingRow, v.v.

Tùy chỉnh hiển thị DataGridView

Bạn có thể thay đổi kiểu chữ, màu sắc, và các thuộc tính khác của các cột hoặc dòng dữ liệu.

Ví dụ để thay đổi màu sắc của một dòng khi người dùng click vào nó:

private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
    foreach (DataGridViewRow row in dataGridView1.Rows)
    {
        row.DefaultCellStyle.BackColor = Color.White; // Khôi phục màu gốc
    }
    DataGridViewRow clickedRow = dataGridView1.Rows[e.RowIndex];
    clickedRow.DefaultCellStyle.BackColor = Color.LightBlue; // Đổi màu dòng đã chọn
}

Thuộc tính DataSource trong DataGridView

Khai báo đối tượng trong phần design.cs C#
Code dưới chỉ tham khảo vì trong Winform C# tự sinh ra khi kéo DataGridView  vào FORM.
System.Windows.Forms.DataGridView this.dataGridView1 = new System.Windows.Forms.DataGridView();

this.dataGridView1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
 | System.Windows.Forms.AnchorStyles.Left)
 | System.Windows.Forms.AnchorStyles.Right)));
 this.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
 this.dataGridView1.Location = new System.Drawing.Point(5, 112);
 this.dataGridView1.Name = "dataGridView1";
 this.dataGridView1.Size = new System.Drawing.Size(798, 274);

// Thuộc tính DataSource để nạp giá trị vào dataGridView để hiển thị lên màn hình

Kiểu nạp vào DataSource kiểu gì: DataSet / DataTable / DataView / List ...

dataGridView1.DataSource =obj;

Lấy giá trị ô đang chọn trong dataGridView

   private void btLSua_Click(object sender, EventArgs e)
   {
       string ma = dataGridView1.CurrentRow.Cells["col_MaKhachHang"].Value.ToString();
       MessageBox.Show(ma);
   }

Vòng lặp duyệt tất cả các bảng ghi trong dataGridview

private void DuyetTatCaBieuDo()
{
    // Duyệt qua tất cả các dòng trong DataGridView
    foreach (DataGridViewRow row in dataGridView1.Rows)
    {
        // Kiểm tra dòng có phải là dòng không phải dòng tiêu đề không (nếu có)
        if (!row.IsNewRow)
        {
            // Duyệt qua các ô trong từng dòng
            foreach (DataGridViewCell cell in row.Cells)
            {
                // Lấy giá trị của từng ô
                var cellValue = cell.Value;
                Console.WriteLine(cellValue); // Hoặc xử lý giá trị của ô tại đây
            }
        }
    }
}

Lấy vị trí bảng ghi đang chọn trên Gridview

public void Delete()
        {
            int rowIndex = grvHangHoa.CurrentRow.Index;
            grvHangHoa.Rows.RemoveAt(rowIndex);
        }

 

Tìm kiếm:

Trong WinForms, DataGridView là một điều khiển (control) mạnh mẽ giúp hiển thị và tương tác với dữ liệu trong một bảng.