当前位置: 首页 > article >正文

C#学习之DataGridView控件

目录

一、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 的一些常用属性,如 ReadOnlyAllowUserToAddRowsSelectionMode 等。

  • 事件处理:处理了 CellClick 事件,当用户点击某个单元格时,会弹出一个消息框显示该行的 Name 列的值。

3.总结

通过以上代码示例,可以轻松地将 DataTable 作为数据源绑定到 DataGridView 控件,并通过设置属性和处理事件来实现更复杂的功能。


http://www.kler.cn/a/547868.html

相关文章:

  • 【mysql部署】在ubuntu22.04上安装和配置mysql教程
  • 明远智睿核心板在智能家居与工业网关中的应用实践
  • cv2小练习
  • Windows server 2016 无法部署docker问题
  • 网络安全-攻击流程-网络层
  • 大型语言模型训练与优化实战指南(2025最新版)
  • 生成格雷码
  • GoC题解(21) 725.画迷宫(下册第4课)
  • 手机应用的耗电量计算
  • 初阶数据结构:树---二叉树的链式结构
  • wireshark 网络安全 awd 网络安全
  • pytorch学习基础1——张量的创建与基础操作
  • Ubuntu 系统迁移
  • 字节Trae使用感想(后端)
  • Golang Model 字段自动化校验设计
  • AI agent 未来好的趋势:AI医疗影像、智能客服、个性化推荐
  • Python深度学习代做目标检测NLP计算机视觉强化学习
  • IntelliJ IDEA集成本地化部署的DeepSeek
  • 【VUE】前端工程化与前端工程化与webpack
  • 机器学习所需数学知识详细版02【】