Skip to content

DevExpress-Examples/winforms-grid-show-gif-animation-in-row-indicator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WinForms Data Grid - Display a GIF animation in the row indicator

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);
}

Files to Review

Documentation