C#学习之DataGridView控件
- 创业
- 2025-08-26 20:00:02

目录
一、DataGridView控件常用属性、方法、事件汇总表
1. 常用方法、属性和事件汇总
二、DataGridView 控件的常用方法调用
1. DataBind() 方法
2. Clear() 方法
3. Refresh() 方法
4. Sort() 方法
5. ClearSelection() 方法
6. BeginEdit() 方法
7. EndEdit() 方法
8. CommitEdit() 方法
9. CancelEdit() 方法
10. SelectAll() 方法
11. GetCellCount() 方法
12. GetColumnCount() 方法
13. GetRowCount() 方法
14. HitTest() 方法
15. AutoResizeColumns() 方法
16. AutoResizeRows() 方法
17. Add() 方法
18. Remove() 方法
19. Insert() 方法
20. Copy() 方法
21. Paste() 方法
22. Find() 方法
23. ScrollIntoView() 方法
24. InvalidateCell() 方法
25. InvalidateRow() 方法
26. InvalidateColumn() 方法
27. Update() 方法
28. Dispose() 方法
29. Show() 和 Hide() 方法
30. BringToFront() 和 SendToBack() 方法
三、DataTable作为DataGridView的数据源示例
1、代码示例:
2. 代码说明
3.总结
一、DataGridView控件常用属性、方法、事件汇总表
DataGridView 是 Windows Forms 中用于显示和编辑表格数据的强大控件。以下是一些常用的方法、属性和事件的汇总。
1. 常用方法、属性和事件汇总 类型名称描述属性DataSource获取或设置 DataGridView 的数据源。Columns获取控件中所有列的集合。Rows获取控件中所有行的集合。CurrentCell获取或设置当前活动的单元格。ReadOnly获取或设置一个值,指示用户是否可以编辑控件的单元格。AllowUserToAddRows获取或设置一个值,指示是否向用户显示添加行的选项。AllowUserToDeleteRows获取或设置一个值,指示用户是否可以从控件中删除行。SelectionMode获取或设置一个值,指示如何选择单元格。MultiSelect获取或设置一个值,指示是否允许用户一次选择多个单元格、行或列。方法Refresh()强制控件使其工作区无效并立即重绘自己和任何子控件。ClearSelection()取消选择所有选定的单元格。Sort()对 DataGridView 的内容进行排序。BeginEdit()将当前的单元格置于编辑模式。EndEdit()提交对当前单元格的编辑并结束编辑操作。事件CellClick在单元格的任何部分被单击时发生。CellValueChanged在单元格的值更改时发生。RowEnter在行接收到输入焦点时发生。RowLeave在行失去输入焦点时发生。SelectionChanged在当前选择更改时发生。 二、DataGridView 控件的常用方法调用以下是 DataGridView 控件的各种常用方法的调用过程。
1. DataBind() 方法将数据源绑定到 DataGridView。
// 创建 DataTable DataTable dataTable = new DataTable(); dataTable.Columns.Add("ID", typeof(int)); dataTable.Columns.Add("Name", typeof(string)); dataTable.Columns.Add("Age", typeof(int)); // 添加数据 dataTable.Rows.Add(1, "Alice", 23); dataTable.Rows.Add(2, "Bob", 30); dataTable.Rows.Add(3, "Charlie", 25); // 绑定数据源 dataGridView1.DataSource = dataTable; 2. Clear() 方法清除 DataGridView 中的所有行和列。
dataGridView1.Clear(); 3. Refresh() 方法刷新 DataGridView,使其重新绘制并显示最新的数据。
dataGridView1.Refresh(); 4. Sort() 方法对 DataGridView 中的列进行排序。
// 按 Name 列升序排序 dataGridView1.Sort(dataGridView1.Columns["Name"], ListSortDirection.Ascending); 5. ClearSelection() 方法取消所有选中的单元格、行或列。
dataGridView1.ClearSelection(); 6. BeginEdit() 方法将当前单元格置于编辑模式。
// 将第一行第一列的单元格置于编辑模式 dataGridView1.CurrentCell = dataGridView1.Rows[0].Cells[0]; dataGridView1.BeginEdit(true); 7. EndEdit() 方法结束当前单元格的编辑并提交更改。
dataGridView1.EndEdit(); 8. CommitEdit() 方法提交当前单元格的编辑并应用更改。
dataGridView1.CommitEdit(DataGridViewDataErrorContexts.Commit); 9. CancelEdit() 方法取消当前单元格的编辑并丢弃更改。
dataGridView1.CancelEdit(); 10. SelectAll() 方法选择 DataGridView 中的所有单元格。
dataGridView1.SelectAll(); 11. GetCellCount() 方法获取满足指定状态的单元格数量。
int selectedCellCount = dataGridView1.GetCellCount(DataGridViewElementStates.Selected); MessageBox.Show("Selected cells: " + selectedCellCount); 12. GetColumnCount() 方法获取满足指定状态的列的数量。
int visibleColumnCount = dataGridView1.GetColumnCount(DataGridViewElementStates.Visible); MessageBox.Show("Visible columns: " + visibleColumnCount); 13. GetRowCount() 方法获取满足指定状态的行数。
int selectedRowCount = dataGridView1.GetRowCount(DataGridViewElementStates.Selected); MessageBox.Show("Selected rows: " + selectedRowCount); 14. HitTest() 方法获取鼠标点击位置的单元格信息。
private void dataGridView1_MouseClick(object sender, MouseEventArgs e) { var hitTestInfo = dataGridView1.HitTest(e.X, e.Y); MessageBox.Show($"Row: {hitTestInfo.RowIndex}, Column: {hitTestInfo.ColumnIndex}"); } 15. AutoResizeColumns() 方法自动调整列的宽度以适应内容。
dataGridView1.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells); 16. AutoResizeRows() 方法自动调整行的高度以适应内容。
dataGridView1.AutoResizeRows(DataGridViewAutoSizeRowsMode.AllCells); 17. Add() 方法动态添加列或行。
// 添加列 dataGridView1.Columns.Add("NewColumn", "New Column"); // 添加行 dataGridView1.Rows.Add(4, "David", 28); 18. Remove() 方法动态删除列或行。
// 删除列 dataGridView1.Columns.Remove("NewColumn"); // 删除行 dataGridView1.Rows.RemoveAt(0); // 删除第一行 19. Insert() 方法在指定位置插入行。
// 在第二行插入新行 dataGridView1.Rows.Insert(1, 5, "Eva", 22); 20. Copy() 方法将选中的单元格内容复制到剪贴板。
dataGridView1.ClipboardCopyMode = DataGridViewClipboardCopyMode.EnableWithoutHeaderText; dataGridView1.SelectAll(); dataGridView1.Copy(); 21. Paste() 方法将剪贴板中的内容粘贴到选中的单元格。
dataGridView1.Paste(); 22. Find() 方法查找指定列中匹配值的行。
int rowIndex = -1; foreach (DataGridViewRow row in dataGridView1.Rows) { if (row.Cells["Name"].Value.ToString() == "Bob") { rowIndex = row.Index; break; } } if (rowIndex != -1) { MessageBox.Show("Found Bob at row: " + rowIndex); } 23. ScrollIntoView() 方法滚动到指定的单元格。
dataGridView1.ScrollIntoView(dataGridView1.Rows[5].Cells[0]); 24. InvalidateCell() 方法使指定单元格无效并强制重绘。
dataGridView1.InvalidateCell(0, 0); // 使第一行第一列的单元格无效 25. InvalidateRow() 方法使指定行无效并强制重绘。
dataGridView1.InvalidateRow(0); // 使第一行无效 26. InvalidateColumn() 方法使指定列无效并强制重绘。
dataGridView1.InvalidateColumn(0); // 使第一列无效 27. Update() 方法强制重绘控件。
dataGridView1.Update(); 28. Dispose() 方法释放 DataGridView 占用的资源。
dataGridView1.Dispose(); 29. Show() 和 Hide() 方法显示或隐藏 DataGridView。
dataGridView1.Show(); // 显示 dataGridView1.Hide(); // 隐藏 30. BringToFront() 和 SendToBack() 方法调整 DataGridView 的 Z 轴顺序。
dataGridView1.BringToFront(); // 置顶 dataGridView1.SendToBack(); // 置底 三、DataTable作为DataGridView的数据源示例 1、代码示例:将 DataTable 作为数据源赋值给 DataGridView 控件
using System; using System.Data; using System.Windows.Forms; namespace DataGridViewExample { public partial class Form1 : Form { public Form1() { InitializeComponent(); // 创建 DataTable DataTable dataTable = new DataTable(); // 添加列 dataTable.Columns.Add("ID", typeof(int)); dataTable.Columns.Add("Name", typeof(string)); dataTable.Columns.Add("Age", typeof(int)); // 添加行 dataTable.Rows.Add(1, "Alice", 23); dataTable.Rows.Add(2, "Bob", 30); dataTable.Rows.Add(3, "Charlie", 25); // 将 DataTable 赋值给 DataGridView 的数据源 dataGridView1.DataSource = dataTable; // 设置 DataGridView 属性 dataGridView1.ReadOnly = true; // 设置为只读 dataGridView1.AllowUserToAddRows = false; // 禁止用户添加行 dataGridView1.AllowUserToDeleteRows = false; // 禁止用户删除行 dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect; // 设置选择模式为整行选择 dataGridView1.MultiSelect = false; // 禁止多选 } private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e) { // 处理单元格点击事件 if (e.RowIndex >= 0) { DataGridViewRow row = this.dataGridView1.Rows[e.RowIndex]; MessageBox.Show("You clicked on: " + row.Cells["Name"].Value.ToString()); } } } } 2. 代码说明DataTable 创建:首先创建了一个 DataTable 对象,并添加了三列(ID、Name、Age)。
添加数据:通过 Rows.Add 方法向 DataTable 中添加了三行数据。
绑定数据源:将 DataTable 赋值给 DataGridView 的 DataSource 属性,这样数据就会显示在 DataGridView 中。
设置属性:设置了 DataGridView 的一些常用属性,如 ReadOnly、AllowUserToAddRows、SelectionMode 等。
事件处理:处理了 CellClick 事件,当用户点击某个单元格时,会弹出一个消息框显示该行的 Name 列的值。
3.总结通过以上代码示例,可以轻松地将 DataTable 作为数据源绑定到 DataGridView 控件,并通过设置属性和处理事件来实现更复杂的功能。
C#学习之DataGridView控件由讯客互联创业栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“C#学习之DataGridView控件”