Favorilerine Ekle | Giriş Sayfan Yap | Tavsiye Et

 

Kurs Tanıtım Sayfası | Süper Üye Kimdir? | Menü Tasarımı Konulu Örnek Ders
Kod İndir| Hazır Kodlar | Makaleler| İpuçları | VB .NET Kursu | Dersler | Forum | Alt Bölümler | Servisler
    Merhaba Misafir
    anasayfa » .NET makaleleri » net » VB Nette XP Button Yapmak
Üye Girişi
Kullanıcı Adı:  
Şifre : 
Kaydet ?
Siteden tam olarak faydalanabilmek için üye olmalısınız.
Unuttuğunuz şifrenizi öğrenebilmek için kayıt sırasında verdiğiniz Hatırlatma Cevabı'nı bilmeniz gereklidir.
Şifre hatırlatma işlevini sadece 3 defa kullanma hakkınız vardır.
Kullanıcı adını ve şifresini unutan üyelere email ile yardım verilmez.

Aktivasyon Gelmedi mi?Aktivasyon mesajınız email adresinize gelmedi mi?
Buraya tıklayarak bir kez daha aktivasyon mesajı gönderilmesini sağlayabilirsiniz.
Lütfen email hesabınızın BULK ve SPAM klasörlerini de kontrol ediniz.
Rastgele Makale

Ülke Saatlerini Gosteren Program

Yazar: vbasicc
Güzel bi uygulama.


Webmasterlar
Sitenize Ekleyin!
Sitenizde "Son Eklenen 10 Visual Basic Yazısı"'nı göstermek ve içeriğini zenginleştirmek için buraya tıklayınız.

Vbasicmaster.com'a link verin!
Aşağıdaki minik banneri sitenize eklemek için tıklayın!

Üye Sayısı:
Ziyaretçiler nerede?
Yayın № : 1799
Yayın Tar:12.01.2005
Yazar : FMehmet_Arslan
Hit :3420

Bu Yazarın Yazıları Sadece bu yazarın  göster
Bu Yazıyı Tavsiye Et

'VB.net de butonları XP yapmak icin
'(form1 in ustundeki button1 icin)
'oncelikle vb.net in drawing clasını import etmeliyiz,
'bunun icin formun en ustune;

Imports System.Drawing.Drawing2

'bundan sonra windows form designer generated code ifadesinin
'hemen altına gerekli tanımlamaları yapalım;

Enum BtnState
Disabled
Normal
Hot
Pushed
End Enum

Const cornerR As Integer = 4
Const cornerD As Integer = (cornerR * 2)

'simdi butonun seklini degistiren paint Sub ını olusturalım;

Private Sub PaintXPButton(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) _
Handles Button1.Paint
'eger butonun ismi degisik ise yukarda button1 yerine kendi butonunuzun ismini yazmalısınız isterseniz virgul koyup istediginiz diger butonları yazarak aynı efekti verebilirsiniz.

Dim btn As Button = CType(sender, Button)
Dim backgroundBrush As New SolidBrush(Me.BackColor)
Dim bMouseDown As Boolean = (btn.MouseButtons And MouseButtons.Left) <> 0

Dim ptMouse As Point = Me.PointToClient(btn.MousePosition)
Dim bMouseInButton As Boolean = btn.Bounds.Contains(ptMouse)

'butonun davranısını belirliyelim
Dim state As BtnState
If (btn.Enabled = False) Then
state = BtnState.Disabled
ElseIf (bMouseDown = False) Then
If (bMouseInButton = True) Then
state = BtnState.Hot
Else 'bMouseInButton = False
state = BtnState.Normal
End If
Else 'bMouseDown = True
If (bMouseInButton = True) Then
state = BtnState.Pushed
Else 'bMouseInButton = False
state = BtnState.Hot
End If
End If

e.Graphics.FillRectangle(backgroundBrush, e.ClipRectangle)

Dim rect As New Rectangle(1, 1, e.ClipRectangle.Width - (cornerR + 1), e.ClipRectangle.Height - (cornerR + 1))
Dim layoutRect As New RectangleF(rect.X, rect.Y, rect.Width, rect.Height)
Dim gradNormal As New System.Drawing.Drawing2D.LinearGradientBrush(New Rectangle(0, 0, 10, e.ClipRectangle.Height), _
SystemColors.ControlLightLight, SystemColors.ActiveCaption, LinearGradientMode.Vertical)
Dim gradPushed As New System.Drawing.Drawing2D.LinearGradientBrush(New Rectangle(0, 0, 10, e.ClipRectangle.Height), _
SystemColors.ActiveCaption, SystemColors.ControlLightLight, LinearGradientMode.Vertical)

Dim strFormat As New StringFormat()
strFormat.Alignment = StringAlignment.Center
strFormat.LineAlignment = StringAlignment.Center

Dim pp As GraphicsPath = RoundRectPath(rect, cornerR)

If (state <> BtnState.Disabled) Then

Dim shadowRect As New Rectangle(0, 0, e.ClipRectangle.Width - 2, e.ClipRectangle.Height - 2)

e.Graphics.DrawLine(SystemPens.ControlDarkDark, _
shadowRect.Left, shadowRect.Bottom - (cornerR + 1), _
shadowRect.Left, shadowRect.Top + cornerR)
e.Graphics.DrawArc(SystemPens.ControlDarkDark, _
New Rectangle(shadowRect.Left, shadowRect.Top, cornerD, cornerD), 180, 90)
e.Graphics.DrawLine(SystemPens.ControlDarkDark, _
shadowRect.Left + cornerR, shadowRect.Top, _
shadowRect.Right - (cornerR + 1), shadowRect.Top
e.Graphics.DrawArc(SystemPens.ControlDark, _
New Rectangle(shadowRect.Right - (cornerD + 1), shadowRect.Top, cornerD, cornerD), 270, 90)
e.Graphics.DrawLine(SystemPens.ControlLightLight, _
shadowRect.Right - 1, shadowRect.Top + cornerR, _
shadowRect.Right - 1, shadowRect.Bottom - (cornerR + 1))
e.Graphics.DrawArc(SystemPens.ControlLightLight, _
New Rectangle(shadowRect.Right - (cornerD + 1), _
shadowRect.Bottom - (cornerD + 1), cornerD, cornerD), 0, 90)
e.Graphics.DrawLine(SystemPens.ControlLightLight, _
shadowRect.Right - (cornerR + 1), shadowRect.Bottom - 1, _
shadowRect.Left + cornerR, shadowRect.Bottom - 1)
e.Graphics.DrawArc(SystemPens.ControlLight, _
New Rectangle(shadowRect.Left, shadowRect.Bottom - (cornerD + 1), cornerD, cornerD), 90, 90)
End If

Select Case state
Case BtnState.Disabled
e.Graphics.FillPath(SystemBrushes.ControlLight, pp)
e.Graphics.DrawPath(SystemPens.ControlDarkDark, pp)
e.Graphics.DrawString(btn.Text, btn.Font, SystemBrushes.ControlDarkDark, layoutRect, strFormat)

Case BtnState.Hot, BtnState.Normal
e.Graphics.FillPath(gradNormal, pp)
e.Graphics.DrawPath(SystemPens.ControlDarkDark, pp)
If (state = BtnState.Hot) Then
e.Graphics.DrawLine(Pens.Orange, rect.Left + 1, rect.Top + 1, rect.Left + 1, rect.Bottom - 1)
e.Graphics.DrawLine(Pens.Orange, rect.Right - 1, rect.Top + 1, rect.Right - 1, rect.Bottom - 1)
e.Graphics.DrawLine(Pens.PeachPuff, rect.Left + 2, rect.Top + 1, rect.Right - 2, rect.Top + 1)
e.Graphics.DrawLine(Pens.DarkOrange, rect.Left + 2, rect.Bottom - 1, rect.Right - 2, rect.Bottom - 1)
e.Graphics.DrawRectangle(Pens.Orange, rect.Left + 2, rect.Top + 2, rect.Width - 4, rect.Height - 5)
End If
e.Graphics.DrawString(btn.Text, btn.Font, SystemBrushes.ActiveCaptionText, layoutRect, strFormat)

Case BtnState.Pushed
e.Graphics.FillPath(gradPushed, pp)
Dim hiRect As Rectangle = rect
hiRect.Inflate(-1, -1)
e.Graphics.DrawRectangle(SystemPens.ControlLightLight, hiRect)
e.Graphics.DrawPath(SystemPens.ControlDarkDark, pp)
e.Graphics.DrawString(btn.Text, btn.Font, SystemBrushes.ActiveCaptionText, layoutRect, strFormat)
End Select

pp.Dispose()
strFormat.Dispose()
backgroundBrush.Dispose()
gradNormal.Dispose()
gradPushed.Dispose()

End Sub

'simdi de butona son seklini bir fonksiyon yardımıyla verelim


Public Shared Function RoundRectPath(ByVal rect As Rectangle, ByVal cornerRadius As Integer) As GraphicsPath
Dim cornerDiameter As Integer = cornerRadius * 2
Dim pp As New GraphicsPath()
pp.AddLine(rect.Left + cornerRadius, rect.Top, rect.Right - cornerRadius, rect.Top)
pp.AddArc(New Rectangle(rect.Right - cornerDiameter, rect.Top, cornerDiameter, cornerDiameter), 270, 90)
pp.AddLine(rect.Right, rect.Top + cornerRadius, rect.Right, rect.Bottom - cornerRadius)
pp.AddArc(New Rectangle(rect.Right - cornerDiameter, rect.Bottom - cornerDiameter, cornerDiameter, cornerDiameter), 0, 90)
pp.AddLine(rect.Right - cornerRadius, rect.Bottom, rect.Left + cornerRadius, rect.Bottom)
pp.AddArc(New Rectangle(rect.Left, rect.Bottom - cornerDiameter, cornerDiameter, cornerDiameter), 90, 90)
pp.AddLine(rect.Left, rect.Bottom - cornerRadius, rect.Left, rect.Top + cornerRadius)
pp.AddArc(New Rectangle(rect.Left, rect.Top, cornerDiameter, cornerDiameter), 180, 90)
pp.CloseFigure()
Return pp
End Function





Bu sayfa için henüz yorum eklenmemiş.

© Hakan Ersöz 2000-2013| Üyelik Sözleşmesi | | Ödeme Bildirimi
Sitemizden yenilikleri hemen öğrenin, pop upları engelleyin, chat yapın... ToolBarımızı indirin:
Vasicmaster Toolbar'ı indirin