Fabio Cirillo's Blog


The world of the programming
Statistiche
  • Views Home Page: 42.261
  • Views Posts: 72.591
  • Views Gallerie: 823
  • n° Posts: 24
  • n° Commenti: 11
Archivio Posts
Anno 2007

Anno 2006

Come creare un pulsante a forma circolare

Prima di tutto dobbiamo creare un progetot di tipo "class library".
Dopo clicchiamo con il tasto di sinistra del mouse nella "solution explorer" e nel menu a tendina che compare su "Add Reference". Cerchiamo la voce System.Drawing e aggiungiamola al progetto cliccando su Ok e allo stesso modo anche la voce System.Windows.Form.
A questo punto dobbiamo scrivere il codice della classe che gestirà la creazione del pulsante:

Public Class RoundButton
    Inherits System.Windows.Form.Button
    Private Function GetRoundedPath(Byval rect as rectangle, byval radius as Int32) As GraphicsPath
       Dim roundrect As New GraphicsPath
       roundrect.addline(rect.Left + radius, rect.Top, rect.Right - radius, rect.Top)
       roundrect.Addarc(rect.Right - 2 * radius, rect.Top, radius * 2, radius * 2, 270,90)
       roundrect.AddLine(rect.Right, rect.Top + radius, rect.Right, rect.Bottom -10)
       roundrect.Addarc(rect.Right - 2 * radius, rect.Bottom - radius * 2, radius * 2, radius * 2,0,90)
       roundrect.AddLine(rect.Right 2 * radius, rect.Bottom, rect.Left + radius, rect.Bottom)
       roundrect.Addarc(rect.Left, rect.Bottom - radius * 2, radius * 2, radius * 2,90,90)
       roundrect.AddLine(rect.Left, rect.Bottom - radius, rect.Left, rect.Top + radius)
       roundrect.Addarc(rect.Left, rect.Top, radius * 2, radius * 2,180,90)
       Return roundrect
    End Function
   
    Protected Overrides Sub OnPaint(byval pa as System.Windows.Form.PaintEventArgs)
       MyBase.OnPaint(pa)
       Dim new_rectangle As rectangle = Me.Clientrectangle
       new_rectangle.Inflate(-3,-3)
       Dim ButtonPath As GraphicsPath = GetRoundedPath(new_rectangle, 10)
       pa.Graphics.SmoothingMode = Smoothing.Antialias
       pa.Graphics.DrawPath(New Per(Color.Gray, 4), buttonpath)
       Me.region = New
       System.Drawing.Region(buttonpath)
    End Sub

A questo il codice deve essere compilato.
Categoria: .NET
giovedì, 18 mag 2006 Ore. 13.10
Sondaggio
Quanto vi è stato utile questo blog?

Moltissimo
Molto
Normale
Poco
Nulla

Calendario
aprile 2024
lmmgvsd
25262728293031
1234567
891011121314
15161718192021
22232425262728
293012345
Ora e Data
Mappa
Copyright © 2002-2007 - Blogs 2.0
dotNetHell.it | Home Page Blogs
ASP.NET 2.0 Windows 2003