C# Sürüklenilebilen Dinamik Buton Kodları

C# Sürüklenilebilen Dinamik Buton Kodları

C# Sürüklenilebilen Dinamik Buton Kodları

Merhaba arkadaşlar bu yazımızda sürüklenilebilen buton örneğini paylaşıyorum.Bu örnek MouseDown,MouseUp ve MouseMove özelliklerini kullanmaktadır.Pek tercih edilen bir yöntem olamsada basit uygulamalarda kullanılabilir.Sürükle bırak işleminin DragDrop Eventları ile kullanım örneğini C# Hanoi Kuleleri Oyunu uygulamasında bulabilirsiniz. Kodların açıklaması mevcuttur.


        public Form1()
        {
            InitializeComponent();
            btn.MouseDown += Btn_MouseDown;
            btn.MouseMove += Btn_MouseMove;
            btn.MouseUp += Btn_MouseUp;
        }

        Button btn = new Button();
        bool suruklenme = false; // Sürükleme ile ilgili bool değişkeni
        Point ilkkonum;
        int surukleme_sayisi = 0;
        private void Form1_Load(object sender, EventArgs e)
        {
            btn.Text = "C# Ders Örnekleri"; // Dinamik buton oluşturduk
            btn.AutoSize = true;
            this.Controls.Add(btn);
            toolStripStatusLabel1.Text = "";
        }
        private void Btn_MouseDown(object sender, MouseEventArgs e)
        {
            suruklenme = true; // Butona basıldığında suruklenmeyi aktif ettik.
            ilkkonum = e.Location; // Mousenin ilk konumunu belirledil.
        }
        private void Btn_MouseMove(object sender, MouseEventArgs e)
        {
            if (suruklenme == true) // Sürüklenme aktifse yani mouseye basılıyorsa
            {
                btn.Left = e.X + btn.Left - (ilkkonum.X); // Butonun left ten uzaklığını veriyoruz.
                btn.Top = e.Y + btn.Top - (ilkkonum.Y); // Aynı şekilde üstten
            }
            toolStripStatusLabel1.Text = "Butonun konumu :  X= " +  btn.Location.X + "  Y= " + btn.Location.Y + "  Sürüklenme Sayısı (Tık Başına): " + surukleme_sayisi;
            // Tool stripte de yazdık
        }
        private void Btn_MouseUp(object sender, MouseEventArgs e)
        {
            surukleme_sayisi++; // Mouseyi bıraktığımızda sürüklenme sayısını arttırıyoruz
            suruklenme = false;  // Sürüklenmeyi bitiriyoruz.
        }

Yorumlar