私はここで次のようなヒントに従いました:
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;
}
ただし、行が削除されて再度追加され、プロパティが失われるため、キャプションはまったく追加されません(完全にわからないため、間違っている場合は修正してください)。
両方の方法はありますか:行のキャプションを維持し、それに応じて並べ替えますか?