私は、アニメーションgif(アニメーションローディングサークル)を保持できる最初の列であるDataGridViewを持っています。アニメーション部分を機能させるために、100ミリ秒ごとに刻み、このメソッドを呼び出す Forms.Timer を使用します
private void timGifAnimation_Tick(object sender, EventArgs e)
{
if(this.dataGridView1.Rows.Count > 0 && current >= 0 && current < this.dataGridView1.Rows.Count)
{
this.dataGridView1.Rows[current].Cells[0].Value = this.picProcessing.Image;
this.dataGridView1.InvalidateCell(0, current);
}
}
これは、DataGridView を SplitContainer に配置するまではうまくいきました。セルは InvalidateCell の呼び出しで再描画されなくなりました。GIF アニメーションが機能するのは、ウィンドウのサイズが変更されたとき、またはボタンの上にマウスを置いたときだけです (マウスをホバーすると一度再描画され、ボタンの再描画からマウスを離すと、もう一度)。デバッグ時には、上記のメソッドが引き続き呼び出され、セルが再描画されません。