5,696,038 members and growing! (16,921 online)
Email Password   helpLost your password?
Multimedia » GDI+ » General     Intermediate License: The Code Project Open License (CPOL)

Custom Status Animation with VB.NET

By Greg Osborne

Provide eye-candy to your users with custom animations
VB 8.0, VBWindows, Win2K, WinXP, Win2003, Vista, GDI+, VS2005, Visual Studio, Dev, Design

Posted: 26 Sep 2008
Updated: 7 Oct 2008
Views: 7,138
Bookmarked: 30 times
Announcements
Loading...



Search    
Advanced Search
Sitemap
17 votes for this Article.
Popularity: 4.57 Rating: 3.71 out of 5
4 votes, 23.5%
1
1 vote, 5.9%
2
0 votes, 0.0%
3
1 vote, 5.9%
4
11 votes, 64.7%
5

Introduction

Remember when something happening in 5 seconds was really quick? Today if something in your application takes more than 5 seconds, your users think the application is locked. Sure I'm exaggerating, but wouldn't it be nice to display something 'eye-catching' while your users are waiting for a long running process to complete? This component uses GDI to draw a series of PNG files onto a form, along with an updatable header and message. Very simple concept, but something that will give your application a professional look. It runs on its own thread and is completely thread-safe, so you can continue with what you are doing while the animation is occurring.

Enjoy!

Using the Code

You can use one of the predefined AnimationData objects, referenced by a corresponding enumeration, or you can create a custom AnimationData object outside of the component and pass it in. I prefer using PNG files for the individual frames (images) of the animation as they support alpha-blending.

CancelClicked Event

When you allow the cancel link to be shown (using the AllowCancel property), you can intercept the cancel and provide a dialog with the CancelClicked event to ask if you really want to cancel the animation. After the user clicks yes, you can do whatever is necessary in the application to stop the process, then set e.Cancel = True in the eventargs. This will be passed back to the component to stop the animation. If you pass back False (e.Cancel = False), then the animation will continue.

AnimationData.FromSingleImage Method

You can create an AnimationData object from a single image that includes all of the frames of the animation. To do this, add the image to your project and call the AnimationData.FromSingleImage method. Tell the method how many frames the animation contains and it will split the single image up into the individual frames and populate the images list. Specifying a transparency color will make that color transparent in the image.  When the method returns, set the AnimationData properties appropriately for your needs and call the Show method.

History

  • 26th September, 2008: Initial post
  • 29th September, 2008: Added CancelClicked event description
  • 3rd October, 2008: Updated code to fix fast Cancel
  • 7th October, 2008: Added AnimationData.FromSingleImage method description

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

About the Author

Greg Osborne


Visual Basic Developer since version 1.0
Occupation: Software Developer (Senior)
Company: Iowa Foundation for Medical Care
Location: United States United States

Other popular GDI+ articles:

Article Top
Sign Up to vote for this article
You must Sign In to use this message board.
FAQ FAQ Noise ToleranceSearch Search Messages 
 Layout  Per page   
 Msgs 1 to 16 of 16 (Total in Forum: 16) (Refresh)FirstPrevNext
GeneralHelpmemberfuxiurong_200123:44 20 Oct '08  
AnswerRe: HelpmemberGreg Osborne3:42 21 Oct '08  
GeneralCancel not workingmemberPSU Steve5:53 3 Oct '08  
AnswerRe: Cancel not workingmemberGreg Osborne6:21 3 Oct '08  
GeneralRe: Cancel not workingmemberPSU Steve7:31 3 Oct '08  
AnswerRe: Cancel not workingmemberGreg Osborne7:51 3 Oct '08  
GeneralRe: Cancel not workingmemberPSU Steve8:00 3 Oct '08  
QuestionMyClass. versus Me.memberRVW8:06 29 Sep '08  
AnswerRe: MyClass. versus Me.memberGreg Osborne8:25 29 Sep '08  
GeneralRe: MyClass. versus Me.memberGreg Osborne8:32 29 Sep '08  
GeneralRe: MyClass. versus Me.memberRVW8:38 29 Sep '08  
GeneralAny C# Code ?memberPankajkumar Nikam6:07 29 Sep '08  
GeneralRe: Any C# Code ?memberGreg Osborne6:41 29 Sep '08  
GeneralRe: Any C# Code ?memberPankajkumar Nikam7:15 29 Sep '08  
GeneralWell Done GregmemberDumpsterJuice3:30 29 Sep '08  
GeneralVery Nicemembersam.hill18:27 26 Sep '08  

General General    News News    Question Question    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

PermaLink | Privacy | Terms of Use
Last Updated: 7 Oct 2008
Editor: Deeksha Shenoy
Copyright 2008 by Greg Osborne
Everything else Copyright © CodeProject, 1999-2008
FileMail | Advertise on the Code Project