C# ‘ta bazen çerçevesiz Windows Form kullanmak zorunda kalırız. Bu gibi durumlarda mouse ile form sürükleme yapılmaz. Taa ki bir kaç satır kod yazana kadar. Şimdi bu bir kaç satır kod neymiş bunu görelim. Sizde bu işlemin ne kadar basit olduğunun farkına varmış olursunuz. Unutmadan uyaralım bu işlem Devexpress kullanmayan kullanıcılar için geçerlidir. Devexpress kullanan kullanıcıların kodları farklıdır. Onu başka bir yazımda anlatacağım.

Bir Windows Form açınız; Form’un üstüne Tools menüsünden istediğiniz bir kaç nesne ekleyiniz. Maksat biraz görsellik olsun. Daha sonra Form’un border kısmını yani windows çerçevesini kapatınız.

Daha sonra Form’ un kod bölümüne geçelim.

namespace WindowsFormsApplication1
{
    public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
        }
        bool dragging;
        Point offset;
        private void Form2_MouseDown(object sender, MouseEventArgs e)
        { dragging = true; offset = e.Location; }
        private void Form2_MouseUp(object sender, MouseEventArgs e)
        {
            dragging = false;
        }
        private void Form2_MouseMove(object sender, MouseEventArgs e)
        {
            if (dragging)
            {
                Point currentScreenPos = PointToScreen(e.Location);
                Location = new Point(currentScreenPos.X - offset.X, currentScreenPos.Y - offset.Y);
            }
        }
    }
}

Buradaki kodlarımız sorunsuz bir şekilde çalışmaktadır. Drag=sürükleme demektir. Mouse Event’larına kodlarımızı yazdık. Bu eventlar’ın nerede olduğunu merak ediyorsanız; Form’un üzerindeyken Properties penceresinin en üst kısmında bulunan Şimşek işaretine tıklayınız. Event listesi açılacaktır.

Debug işlemi ile projeyi çalıştırın ve Mouse ile Form’un nasıl sürüklendiğini görün.