5,443,978 members and growing! (22,274 online)
Email Password   helpLost your password?
Languages » C# » Windows Forms     Intermediate

Interactive Shaped Forms

By Jibin Pan

This Demo show how to create shaped form and customized buttons using the Region, GraphicsPath and picture class
C#, Windows, .NET 1.0, .NETVisual Studio, VS.NET2002, Dev

Posted: 19 Mar 2002
Updated: 19 Mar 2002
Views: 72,946
Bookmarked: 37 times
Announcements
Want a new Job?



Search    
Advanced Search
Sitemap
15 votes for this Article.
Popularity: 2.80 Rating: 2.38 out of 5
6 votes, 46.2%
1
1 vote, 7.7%
2
2 votes, 15.4%
3
0 votes, 0.0%
4
4 votes, 30.8%
5

Sample Image - ShapedForm.jpg

Introduction

This Demo show how to create shaped form and customized buttons using the Region, GraphicsPath and picture class. It also demonstrates using the picture control to display animated pictures.

All graphics are from Microsoft Media Player and have been resized to make the graphic files smaller.

The procedures:

  1. Create a form with some background color, then set the property TransparenceKey to that color and set the FormBorderStyle to None.

  2. Override the Form_Paint function

    You can do it by

    protected override void  OnPaint(PaintEventArgs e)

    or add a new Handler

    this.Paint += new System.Windows.Form.PaintEventHandler(Form_Paint)

  3. Using Region and GraphicsPath to set the Region that you want to display.
    im = new Bitmap("mediaPlayer.jpg"); 
    
    private void Form_Paint(object sender, PaintEventArgs e) 
    { 
       Graphics g = e.Graphics; 
    
       Rectangle mainRect = new Rectangle(0, 0, 695, 278); 
    
       Region mainRegion = new Region(mainRect); 
    
       e.Graphics.SetClip(mainRegion, CombineMode.Replace); 
    
       // Create a GraphicsPath object and add a curve. 
    
       GraphicsPath myPath = new GraphicsPath(); 
    
       ... 
    
       Region ExcludeRegion3 = new Region(myPath); 
    
       e.Graphics.ExcludeClip(ExcludeRegion3); 
    
       ... 
    
       e.Graphics.DrawImage(im, 0, 0, 495,278); 
    
       // Reset clipping region to infinite. 
    
       e.Graphics.ResetClip(); 
    } 
    

Note: Keep all the graphics in the bin/debug directory.

If you have any comments, I would love to hear about it. You can reach me at Jibin Pan.

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here

About the Author

Jibin Pan



Location: United States United States

Other popular C# 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 8 of 8 (Total in Forum: 8) (Refresh)FirstPrevNext
Subject  Author Date 
GeneralHelp wanted!!!!sussnanu_babu21:39 5 Jun '03  
GeneralUrrrm..Object not defined?sussDrutch5:04 21 Apr '03  
GeneralRe: Urrrm..Object not defined?sussAnonymous19:54 30 Jan '05  
GeneralPlatform specificmemberNikhil Dabas2:20 20 Mar '02  
GeneralRe: Platform specificmemberswinefeaster21:46 14 Apr '02  
GeneralRe: Platform specificmemberori_yq4:23 31 Dec '02  
GeneralRe: Platform specificmemberNikhil Dabas11:07 2 Jan '03  
GeneralRe: Platform specificmemberHeath Stewart3:25 28 Jan '03  

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

PermaLink | Privacy | Terms of Use
Last Updated: 19 Mar 2002
Editor: Chris Maunder
Copyright 2002 by Jibin Pan
Everything else Copyright © CodeProject, 1999-2008
Web13 | Advertise on the Code Project