【C#】DataGridView<机房重构>

本文介绍了 DataGridView 控件的使用技巧,包括如何实现仅能选中一行的功能、如何获取选中行的数据、如何添加表头以及几种不同的清空数据的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

        机房重构中,我们都用到了DataGridView控件,我分享一下我用这个控件的收获。

选中一行并且不能同时选中多行

1、设置DataGridView的属性SelectionMode为FullRowSelect,这样就使DataGridView不是选择一个字段,而是选择一整行了。

2、设置DataGridView的属性MultiSelect为false,这样就使DataGridView不能够选择多行,只能选择一行了。

获取选中行中的数据

this.dataGridView.SelectedRows[0].Cells[0].Value.ToString();//获取选中行的第一列的值

添加表头

dataGridView1.Columns[0].HeaderText = "学号";//为第一列添加标题。

绑定datatable

DataGridView.Source=Table;

清空数据

方法一:利用循环清空

while (this.DataGridView.Rows.Count != 0)
{
    this.DataGridView.Rows.RemoveAt(0);
}

方法二:使DataSource为NULL

DataGridView.DataSource= null;//不过这样也会将标题栏也删掉。

方法三:加入一张空表

总结

        我用datagridview时候暂时就遇到了这些有意思的问题,欢迎大家与我共同分享。

要在 C# 中将嵌套的 `List<List<T>>` 显示到 `DataGridView` 控件中,可以通过动态创建数据结构并将其绑定到 `DataGridView` 实现。以下是具体方法: ### 动态显示嵌套列表至 DataGridView ```csharp using System; using System.Collections.Generic; using System.Windows.Forms; public class Program { public static void Main() { Application.EnableVisualStyles(); Form form = new Form(); DataGridView dataGridView = new DataGridView { Dock = DockStyle.Fill }; form.Controls.Add(dataGridView); // 创建示例数据 List<List<string>> data = CreateSampleData(); // 转换数据为 DataTable 并绑定到 DataGridView BindNestedListToDataGridView(data, dataGridView); Application.Run(form); } private static List<List<string>> CreateSampleData() { return new List<List<string>> { new List<string> { "Row1Col1", "Row1Col2", "Row1Col3" }, new List<string> { "Row2Col1", "Row2Col2", "Row2Col3" }, new List<string> { "Row3Col1", "Row3Col2", "Row3Col3" } }; } private static void BindNestedListToDataGridView(List<List<string>> nestedLists, DataGridView dataGridView) { if (nestedLists == null || nestedLists.Count == 0) return; // 获取最大列数以初始化 DataGridView 列 int maxColumns = nestedLists.Max(list => list.Count); for (int i = 0; i < maxColumns; i++) { dataGridView.Columns.Add($"Column{i}", $"Column {i + 1}"); } foreach (var row in nestedLists) { while (row.Count < maxColumns) row.Add(""); // 补齐空白单元格 dataGridView.Rows.Add(row.ToArray()); } } } ``` 此代码片段展示了如何将嵌套的 `List<List<string>>` 绑定到 `DataGridView` 上[^1]。通过遍历外部列表并将内部列表的内容逐行填充到 `DataGridView` 的每一行中完成操作。 对于不同类型的 T(如整型或其他自定义对象),需适当调整数据处理逻辑以及可能涉及的数据转换过程[^2]。 --- ### --相关问题--: 1. 如果需要支持不同类型的数据项(例如混合字符串与数值类型)该如何扩展当前解决方案? 2. 当面对非常大的数据集时,直接加载全部数据进入内存可能会引发性能瓶颈;此时应考虑什么优化策略? 3. 是否能够利用虚拟模式提高大数据量情况下 DataGridView 的渲染效率?如果有,请提供简单实例说明其工作原理。
评论 27
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值