This example shows how to handle the CustomDrawRowIndicator event to display a GIF animation in the row indicator of the focused row.
private void gridView1_CustomDrawRowIndicator(object sender, RowIndicatorCustomDrawEventArgs e) {
GridView view = (GridView)sender;
if ( e.RowHandle != view.FocusedRowHandle || !view.IsDataRow(e.RowHandle) || imgToDraw == null )
return;
e.Info.ImageIndex = -1;
Point imgLocation = new Point();
imgLocation.Y = e.Bounds.Y + e.Bounds.Size.Height / 2 - imgToDraw.Size.Height / 2;
imgLocation.X = e.Bounds.X + e.Bounds.Size.Width / 2 - imgToDraw.Size.Width / 2;
e.Painter.DrawObject(e.Info);
e.Cache.DrawImage(imgToDraw, imgLocation);
e.Handled = true;
}
We created a helper class (AnimatedGifImageHelper
) to obtain animation frames and draw them as static images (the Image
class). The Timer's Interval
property specifies the animation speed (the longer the interval, the slower the animation).
private void timer1_Tick(object sender, EventArgs e) {
imgToDraw = gifHelper.GetNextFrame();
// Redraws the row indicator cell that corresponds to the focused row.
gridView1.InvalidateRowIndicator(gridView1.FocusedRowHandle);
}
- AnimatedGifImageHelper.cs (VB: AnimatedGifImageHelper.vb)
- DataClass.cs (VB: DataClass.vb)
- Form1.cs (VB: Form1.vb)
- Program.cs (VB: Program.vb)
(you will be redirected to DevExpress.com to submit your response)