C# butonu sürükle,bırak işlemleri dinamik olarak gerçekleştirebileceğiniz mouse down,up,move eventları ve örnek uygulama kaynak kodlarıdır.
Bu örnek MouseDown,MouseUp ve MouseMove özelliklerini kullanmaktadır.
Pek tercih edilen bir yöntem olmasa 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.
}
Kaynak kodları için : C# Sürüklenebilen dinamik buton