Kod:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Drawing.Drawing2D;
namespace C_Sharp_Form_Yuvarlak_Kare_Buton_Olusturma
{
public partial class Form_Yuvarlak_Kare_Buton_Olusturma : Form
{
[STAThread]
static **** Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form_Yuvarlak_Kare_Buton_Olusturma());
}
public Form_Yuvarlak_Kare_Buton_Olusturma()
{
InitializeComponent();
InitializeMyComponent();
}
private **** Form1_Load(object sender, EventArgs e)
{
// Mavi renkli bir yuvarlak kare buton oluşturalım
YuvarlakKareButon yuvarlak_kare_buton = new YuvarlakKareButon();
// Kare veya dikdörtgen butonun size özelliği değiştiği an
//şekli yuvarlak kare olacak
yuvarlak_kare_buton.Size = new Size(50, 75);
// yuvarlak kare butona diğer özellikleri dinamik olarak verebiliriz
yuvarlak_kare_buton.******** = new System.Drawing.Point(60, 60);
yuvarlak_kare_buton.BackColor = Color.Blue;
yuvarlak_kare_buton.FlatAppearance.BorderSize = 0;
yuvarlak_kare_buton.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
yuvarlak_kare_buton.FlatAppearance.BorderColor = Color.Blue;
yuvarlak_kare_buton.TabStop = false;
yuvarlak_kare_buton.Text = "Aç";
yuvarlak_kare_buton.TabIndex = 1;
// oluşan yuvarlak kare butonu ana forma ekleme
this.Controls.Add(yuvarlak_kare_buton);
// Kırmızı renkli bir yuvarlak kare buton oluşturalım
YuvarlakKareButon yuvarlak_kare_button = new YuvarlakKareButon();
// Kare veya dikdörtgen butonun size özelliği değiştiği an
//şekli yuvarlak kare olacak
yuvarlak_kare_button.Size = new Size(50, 75);
// yuvarlak kare butona diğer özellikleri dinamik olarak verebiliriz
yuvarlak_kare_button.******** = new System.Drawing.Point(120, 60);
yuvarlak_kare_button.BackColor = Color.Red;
yuvarlak_kare_button.FlatAppearance.BorderSize = 0;
yuvarlak_kare_button.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
yuvarlak_kare_button.FlatAppearance.BorderColor = Color.Blue;
yuvarlak_kare_button.TabStop = false;
yuvarlak_kare_button.Text = "Kapat";
yuvarlak_kare_button.TabIndex = 1;
// oluşan yuvarlak kare butonu ana forma ekleme
this.Controls.Add(yuvarlak_kare_button);
// Ayrıca butonlara bir click event i de ekleyelim butonlara tıklandığında
// renkleri değişsin
yuvarlak_kare_button.Click += new EventHandler(yuvarlak_kare_button_Click);
// beyaz renkli bir yuvarlak buton oluşturalım
YuvarlakButon yuvarlak_buton_beyaz = new YuvarlakButon();
// Kare veya dikdörtgen butonun size özelliği değiştiği an
//şekli yuvarlak olacak
yuvarlak_buton_beyaz.Size = new Size(50, 50);
// yuvarlak butona diğer özellikleri dinamik olarak verebiliriz
yuvarlak_buton_beyaz.******** = new System.Drawing.Point(60, 120);
yuvarlak_buton_beyaz.BackColor = Color.White;
yuvarlak_buton_beyaz.FlatAppearance.BorderSize = 0;
yuvarlak_buton_beyaz.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
yuvarlak_buton_beyaz.FlatAppearance.BorderColor = Color.Blue;
yuvarlak_buton_beyaz.TabStop = false;
yuvarlak_buton_beyaz.TabIndex = 1;
yuvarlak_buton_beyaz.Text = "Aç";
// oluşan yuvarlak butonu ana forma ekleme
this.Controls.Add(yuvarlak_buton_beyaz);
// Siyah renkli bir yuvarlak buton oluşturalım
YuvarlakButon yuvarlak_buton_siyah = new YuvarlakButon();
// Kare veya dikdörtgen butonun size özelliği değiştiği an
//şekli yuvarlak olacak
yuvarlak_buton_siyah.Size = new Size(50, 50);
// yuvarlak butona diğer özellikleri dinamik olarak verebiliriz
yuvarlak_buton_siyah.******** = new System.Drawing.Point(120, 120);
yuvarlak_buton_siyah.BackColor = Color.Black;
yuvarlak_buton_siyah.ForeColor = Color.White;
yuvarlak_buton_siyah.FlatAppearance.BorderSize = 0;
yuvarlak_buton_siyah.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
yuvarlak_buton_siyah.FlatAppearance.BorderColor = Color.Blue;
yuvarlak_buton_siyah.TabStop = false;
yuvarlak_buton_siyah.TabIndex = 2;
yuvarlak_buton_siyah.Text = "Kapat";
// oluşan yuvarlak butonu ana forma ekleme
this.Controls.Add(yuvarlak_buton_siyah);
// Ayrıca butonlara bir click event i de ekleyelim butonlara tıklandığında
// renkleri değişsin
yuvarlak_buton_beyaz.Click += new EventHandler(yuvarlak_buton_Click);
yuvarlak_buton_siyah.Click += new EventHandler(yuvarlak_buton_Click);
}
private **** yuvarlak_kare_button_Click(object sender, EventArgs e)
{
if (((YuvarlakKareButon)sender).BackColor == Color.Blue)
((YuvarlakKareButon)sender).BackColor = Color.Red;
else
((YuvarlakKareButon)sender).BackColor = Color.Blue;
}
private **** yuvarlak_buton_Click(object sender, EventArgs e)
{
// hangi yuvarlak butona yıklanmışsa onun rengini değiştir
//Eğer yuvarlak buton un rengi kırmızı ise eski rengine döndür
Button tiklananButon = sender as Button;
if (tiklananButon.TabIndex == 1)
{
if (tiklananButon.BackColor == Color.Red)
tiklananButon.BackColor = Color.White;
else
tiklananButon.BackColor = Color.Red;
}
else
{
if (tiklananButon.BackColor == Color.Red)
tiklananButon.BackColor = Color.Black;
else
tiklananButon.BackColor = Color.Red;
}
}
private **** InitializeMyComponent()
{
this.SuspendLayout();
//
// Form1
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(224, 186);
this.Name = "Buton";
this.Text = "Yuvarlak Kare Buton Oluşturma ";
this.Load += new System.EventHandler(this.Form1_Load);
this.ResumeLayout(false);
}
}
public class YuvarlakKareButon : Button
{
protected override **** OnResize(EventArgs e)
{
base.OnResize(e);
GraphicsPath gp = new GraphicsPath();
Point[] point = new Point[4];
point[0] = new Point(0, -25);
point[1] = new Point(50,-25);
point[2] = new Point(50, 25);
point[3] = new Point(0, 25);
gp.AddPolygon(point);
gp.AddPie(0, 0, 50, 50,0,180);
// Grafik nesnesi ile butona yuvarlak ve kare görünümü verildi
this.Region = new Region(gp);
}
}
// Yuvarlak butonu oluşturmak için kullanılacak olan Class
public class YuvarlakButon : Button //Buton sınıfından miras alacak
{
// Yuvarlak buton a yeni bir boyut ( size ) verildiğinde şeklini yuvarlak yapacak
protected override **** OnResize(EventArgs e)
{
base.OnResize(e);
GraphicsPath gp = new GraphicsPath();
// this.Size ın en boyu aynı oldugundan yuvarlak bir şekil oluşacak
gp.AddEllipse(new Rectangle(Point.Empty, this.Size));
// oluşan yeni yuvarlak şekli oluşturulan butona atama
this.Region = new Region(gp);
// Butonun yeni şekli yuvarlak oldu
}
}
}