FaTaL Yönetici
Ruh Hali : Mesaj Sayısı : 626 Rep Puanı : 12348 Teşekkür Aldı : 18 Kayıt tarihi : 24/10/09 Nerden : Kocaeli İş/Hobiler : 3D / Maya / After Efect Lakap : Fatal
| Konu: Sürükleme Cuma Ekim 30, 2009 9:40 am | |
| Arkadaşlar, bu dersimizde ise yine fonksiyonlardan karmaşık olabilecek kodları açıklamaya devam edeceğim. Drag-Drop (Sürükle-Bırak), burada bizim amacımız Formumuzda bulunan bir nesneyi istediğimiz bir yere sürüklemek. Bunun için formumuza bir tane TextBox (textBox1) ekliyoruz. Ardaından kodlarımız ;
bool Sürükle; // Sürükleme komutu -sürükle--sürükleme (Yani iki komut tek verebiliriz evet - hayır bu nedenle bool değişkenimizi kullandık)
private void Form1_Click(object sender, EventArgs e) //Forma click(tıkladığımızda) yapılacak işlem
{
textBox1.Left = 1;//textbox ı sola olan uzaklığını belirliyoruz.
}
private void Form1_MouseMove(object sender, MouseEventArgs e)//Mousenin hareketine göre form üzerinde yapılacak işlem
{
if (Sürükle == true)//Sürükle değeri true ise yani mouse nesneyi sürüklüyor mu?
{
textBox1.Left = e.X; // sürükle ; evet olduğu taktirde x ve y koordinatlarını belirle.
textBox1.Top = e.Y;
}
}
private void Form1_MouseUp(object sender, MouseEventArgs e)//Mouse yukarı doğru
{
Sürükle = false; // sürüklemeyi durdur.
}
private void Form1_MouseDown(object sender, MouseEventArgs e)//Mouse aşağı doğru
{
if (e.Button == MouseButtons.Left)// eğer mmousenin sol butonuna tıklanıyorsa
textBox1.DoDragDrop(this.textBox1, DragDropEffects.Move);// textboxı sürükle-bırak
}
private void Form1_DragOver(object sender, DragEventArgs e)//Form1 üzerinde sürükle
{
if (e.KeyState == 1)
e.Effect = DragDropEffects.Move;
}
private void Form1_DragDrop(object sender, DragEventArgs e)//Form1 üzerinde bırak
{
textBox1.Left = e.X;// textBox1’in sola olan uzaklığı mousenin değeri (e.X)
textBox1.Top = e.Y;//textBox1’in yukarı olan uzaklığı mousenin değeri (e.Y)
}
private void textBox1_MouseMove(object sender, MouseEventArgs e)//textin mouse hareketi
{
if (Sürükle == true)// sürükleme true ise
{
textBox1.Left = e.X;//textin konumunu e (mousenin değeri)’ yi aktar
textBox1.Top = e.Y;
}
}
private void textBox1_MouseUp(object sender, MouseEventArgs e)
{
Sürükle = false;// Sürüklemeyi durdur.
}
private void textBox1_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
textBox1.DoDragDrop(this.textBox1, DragDropEffects.Move);// sürükle-bırak işlemini gerçekleştir
}
açıklamalarıyla yazdım bunları yazalım. Ardından Form1 seçili iken Propertiesten AllowDrop seçeneği True yapmalısınız. (Ayrıca programımızın tam çalışması için ekranı kaplaması gerekir.)
Ekran Görüntüsü;
ilk görüntü
Sonraki görüntü(Mouse ile sürükle-bırak yapınca imlecin altında küçük bir kare çıkıyor. PrintScreen yapınca görünmüyor ama siz yapınca görebileceksiniz.)
| |
|