• Web sitemizin içeriğine ve tüm hizmetlerimize erişim sağlamak için Web sitemize kayıt olmalı ya da giriş yapmalısınız. Web sitemize üye olmak tamamen ücretsizdir.
  • Sohbetokey.com ile canlı okey oynamaya ne dersin? Hem sohbet et, hem mobil okey oyna!
  • Soru mu? Sorun mu? ''Bir Sorum Var?'' sistemimiz aktiftir. Paylaşın beraber çözüm üretelim.

Dinamik Yuvarlak ve Kare Buton Oluşturma - Miras Alma

Üyelik Tarihi
7 Ocak 2015
Konular
4,091
Mesajlar
4,274
MFC Puanı
40
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