我在这里遵循了一个提示:
datagridview1.Rows[0].HeaderCell.Value = "ur text";
在这个帮助下,我设置了一个方法:
private void dataGridView1_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e, DataSet src)
{
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
dataGridView1.Rows[i].HeaderCell.Value = row_captions[i];
}
}
它很好地用标题填充了我所有行的标题。当我尝试对任何列进行排序时,就会出现问题。再次调用此方法,即使行以不同的方式排列,标题仍保持相同的顺序。我尝试使用 bool 值,因此它不会像这样再次调用此方法:
private first_time = true;
private void dataGridView1_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e, DataSet src)
{
if(first_time)
{
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
dataGridView1.Rows[i].HeaderCell.Value = row_captions[i];
}
}
}
private void dataGridView1_Sorted(object sender, EventArgs e)
{
first_time = false;
}
但是现在,它根本不会添加标题,因为显然行被删除并再次添加,因此失去了它们的属性(如果我错了,请纠正我,因为我不完全确定)。
有没有办法兼顾两者:维护行的标题并相应地对它们进行排序?