c# - 在一定数量的行之后拆分datagridview
问题描述
我有一个看起来像这样的datagridview:
┌───────────┬───────────┐
│ ID │ Name │
├───────────┼───────────┤
│ 1 │ Jack │
│ 2 │ Carl │
│ 3 │ Daniel │
│ 4 │ Abby │
│ .. │ │
│ 10000 │ │
└───────────┴───────────┘
使用列 ID 和名称,ID 列中有超过 10.000 个 ID,我该怎么做,如果我点击一个按钮,会弹出一个消息框,但只有前 999 个 ID,如果我点击确定,它将显示我下一个 999 ID 直到它完成?
解决方案
首先将 DataGridView 中的行划分为所需大小的部分。当用户单击按钮时,您可以迭代并为每个部分构建一个输出字符串。
private IEnumerable<IEnumerable<DataGridViewRow>> SplitDataGridView(DataGridView dgv)
{
var rows = new List<DataGridViewRow>(size);
foreach (DataGridViewRow row in dgv.Rows)
{
rows.Add(row);
if (rows.Count == size)
{
yield return rows;
rows = new List<DataGridViewRow>(size);
}
}
if (rows.Count > 0)
{
yield return rows;
}
}
private void button1_Click(object sender, EventArgs e)
{
foreach (var rows in SplitDataGridView(dataGridView))
{
var sb = new StringBuilder();
foreach (var row in rows)
{
foreach (DataGridViewCell cell in row.Cells)
{
sb.Append(cell.Value);
sb.Append(delimiter);
}
sb.Remove(sb.Length - delimiter.Length, delimiter.Length);
sb.AppendLine();
}
MessageBox.Show(sb.ToString());
}
}
推荐阅读
- amazon-web-services - AWS 磁盘空间增加导致卷大小不正确
- r - 计算几个 x 值的 ay 值,使它们显示时不重叠(在 R 中)
- c# - 为什么我的“角色”仍在游戏对象中移动而不是游戏对象被破坏
- c++ - 为什么在我运行程序时会发生这种情况?
- angular - Angular:使用输入和管道的问题
- python - 如何在 OpenCV Python 中设置帧的高度和宽度
- powershell - Powershell,Import-CSV,-过滤 SamAccountName
- ios - Swift UIPanGesture
- python - MYSQL 中的密码错误(都是最新版本)?
- azure - 如何确定我在本地使用的 Azure Function 运行时版本?