Neler yeni
Türkiye'nin En Güncel Forum Sitesi

Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı yada giriş yapmalısınız. Forum üye olmak tamamen ücretsizdir.

Dinamik Yuvarlak ve Kare Buton Oluşturma - Miras Alma

ByOnur58

Kayıtlı Üye
MFC Üyesi
  • Üyelik Tarihi
    7 Ocak 2015
  • Mesajlar
    2,114
  • MFC Puanı
    10
  • MFC Seviyesi

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
        }
    }
}
 
Üst Alt