C# Sürüklenilebilen Dinamik Buton Kodları

C# Sürüklenilebilen Dinamik Buton Kodları

C# Sürüklenilebilen Dinamik Buton Kodları

Bu örnek MouseDown,MouseUp ve MouseMove özelliklerini kullanmaktadır.
Pek tercih edilen bir yöntem olamsa da 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