Skip to content

Latest commit

 

History

History
55 lines (43 loc) · 3.65 KB

File metadata and controls

55 lines (43 loc) · 3.65 KB

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

Does this example address your development requirements/objectives?

(you will be redirected to DevExpress.com to submit your response)