using System.Drawing.Drawing2D;
private void button3_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
{ this.button3.Cursor = Cursors.Hand;
Bitmap bmpBob =(Bitmap)this.button3.Image;
GraphicsPath graphicsPath = CalculateControlGraphicsPath(bmpBob);
this.button3.Region = new Region(graphicsPath);
}
private static GraphicsPath CalculateControlGraphicsPath(Bitmap bitmap)
{
GraphicsPath graphicsPath = new GraphicsPath();
Color colorTransparent = bitmap.GetPixel(0, 0);
int colOpaquePixel = 0;
for(int row = 0; row < bitmap.Height; row )
{
colOpaquePixel = 0;
for(int col = 0; col < bitmap.Width; col )
{
if(bitmap.GetPixel(col, row) != colorTransparent)
{
colOpaquePixel = col;
int colNext = col;
for(colNext=colOpaquePixel; colNext if(bitmap.GetPixel(colNext, row) == colorTransparent) break; graphicsPath.AddRectangle(new Rectangle(colOpaquePixel, row, colNext - colOpaquePixel, 1)); col = colNext; } } } return graphicsPath; }