我有一个看起来像这样的datagridview:
┌───────────┬───────────┐
│ ID │ Name │
├───────────┼───────────┤
│ 1 │ Jack │
│ 2 │ Carl │
│ 3 │ Daniel │
│ 4 │ Abby │
│ .. │ │
│ 10000 │ │
└───────────┴───────────┘
具有列ID和名称的ID列中有超过10.000个ID,该怎么办?如果我单击按钮,则会弹出一个消息框,但只有前999个ID出现,然后单击确定即可。它会告诉我下一个999个ID,直到完成?
答案 0 :(得分:1)
首先将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());
}
}