Button.Region
Imports System.Drawing Imports System.Drawing.Drawing2D Imports System.Windows.Forms public class IrregularShapeButton public Shared Sub Main Application.Run(New Form1) End Sub End class Public Class Form1 Inherits System.Windows.Forms.Form Private originalSize As Size Friend WithEvents AnimationBtn As System.Windows.Forms.Button Friend WithEvents VideoBtn As System.Windows.Forms.Button Friend WithEvents AudioBtn As System.Windows.Forms.Button Friend WithEvents ContextMenu1 As System.Windows.Forms.ContextMenu Friend WithEvents Circlemenu As System.Windows.Forms.MenuItem Friend WithEvents RectMenu As System.Windows.Forms.MenuItem Friend WithEvents TriangleMenu As System.Windows.Forms.MenuItem Friend WithEvents CloseMenu As System.Windows.Forms.MenuItem Public Sub New() MyBase.New() Me.AnimationBtn = New System.Windows.Forms.Button Me.VideoBtn = New System.Windows.Forms.Button Me.AudioBtn = New System.Windows.Forms.Button Me.ContextMenu1 = New System.Windows.Forms.ContextMenu Me.Circlemenu = New System.Windows.Forms.MenuItem Me.RectMenu = New System.Windows.Forms.MenuItem Me.TriangleMenu = New System.Windows.Forms.MenuItem Me.CloseMenu = New System.Windows.Forms.MenuItem Me.SuspendLayout() ' 'AnimationBtn ' Me.AnimationBtn.BackColor = System.Drawing.Color.Blue Me.AnimationBtn.Font = New System.Drawing.Font("Tahoma", 10.0!, System.Drawing.FontStyle.Bold) Me.AnimationBtn.ForeColor = System.Drawing.SystemColors.ControlLightLight Me.AnimationBtn.Location = New System.Drawing.Point(120, 146) Me.AnimationBtn.Name = "AnimationBtn" Me.AnimationBtn.Size = New System.Drawing.Size(152, 104) Me.AnimationBtn.TabIndex = 6 Me.AnimationBtn.Text = "Animation" ' 'VideoBtn ' Me.VideoBtn.BackColor = System.Drawing.Color.Green Me.VideoBtn.Font = New System.Drawing.Font("Tahoma", 10.0!, System.Drawing.FontStyle.Bold) Me.VideoBtn.ForeColor = System.Drawing.SystemColors.ControlLightLight Me.VideoBtn.Location = New System.Drawing.Point(208, 26) Me.VideoBtn.Name = "VideoBtn" Me.VideoBtn.Size = New System.Drawing.Size(160, 96) Me.VideoBtn.TabIndex = 5 Me.VideoBtn.Text = "Play Video" ' 'AudioBtn ' Me.AudioBtn.BackColor = System.Drawing.Color.FromArgb(CType(255, Byte), CType(128, Byte), CType(0, Byte)) Me.AudioBtn.Font = New System.Drawing.Font("Tahoma", 10.0!, System.Drawing.FontStyle.Bold) Me.AudioBtn.ForeColor = System.Drawing.SystemColors.ControlLightLight Me.AudioBtn.Location = New System.Drawing.Point(96, 26) Me.AudioBtn.Name = "AudioBtn" Me.AudioBtn.Size = New System.Drawing.Size(160, 96) Me.AudioBtn.TabIndex = 4 Me.AudioBtn.Text = "Play Audio" ' 'ContextMenu1 ' Me.ContextMenu1.MenuItems.AddRange(New System.Windows.Forms.MenuItem() {Me.Circlemenu, Me.RectMenu, Me.TriangleMenu, Me.CloseMenu}) ' 'Circlemenu ' Me.Circlemenu.Index = 0 Me.Circlemenu.Text = "Circle" ' 'RectMenu ' Me.RectMenu.Index = 1 Me.RectMenu.Text = "Original" ' 'TriangleMenu ' Me.TriangleMenu.Index = 2 Me.TriangleMenu.Text = "TriangleMenu" ' 'CloseMenu ' Me.CloseMenu.Index = 3 Me.CloseMenu.Text = "Close" ' 'Form1 ' Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13) Me.ClientSize = New System.Drawing.Size(464, 277) Me.Controls.Add(Me.AnimationBtn) Me.Controls.Add(Me.VideoBtn) Me.Controls.Add(Me.AudioBtn) Me.ResumeLayout(False) End Sub Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load originalSize = Me.Size Dim path1 As New GraphicsPath(FillMode.Alternate) path1.AddEllipse(New Rectangle(30, 30, AudioBtn.Width - 60, AudioBtn.Height - 60)) AudioBtn.Region = New [Region](path1) Dim path2 As New GraphicsPath(FillMode.Alternate) path2.AddEllipse(New Rectangle(30, 30, VideoBtn.Width - 60, VideoBtn.Height - 60)) VideoBtn.Region = New [Region](path2) Dim path3 As New GraphicsPath(FillMode.Alternate) path3.AddEllipse(New Rectangle(20, 20, VideoBtn.Width - 40, VideoBtn.Height - 40)) AnimationBtn.Region = New [Region](path3) End Sub Private Sub AudioBtn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AudioBtn.Click MessageBox.Show("Play Audio Button clicked!") End Sub Private Sub VideoBtn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles VideoBtn.Click MessageBox.Show("Play Video Button clicked!") End Sub Private Sub AnimationBtn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AnimationBtn.Click MessageBox.Show("Play Animation Button clicked!") End Sub End Class