Đ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.
Dưới đây là hướng dẫn sử dụng DataGridView trong WinForms bằng C# để hiển thị dữ liệu
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.
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.
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.
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.
Bạn có thể thêm các sự kiện như CellClick, RowValidated, UserDeletingRow, v.v.
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
}
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;
private void btLSua_Click(object sender, EventArgs e)
{
string ma = dataGridView1.CurrentRow.Cells["col_MaKhachHang"].Value.ToString();
MessageBox.Show(ma);
}
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
}
}
}
}
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.