Menggerakan obyek di Windows OS dengan mouse menggunakan C Sharp

Setelah kita paham bagaimana menampilkan obyek gambar yang kita sukai di Windows OS dengan menggunakan C Sharp, maka proyek selanjutnya adalah bagaimana agar kita dapat menggerakan obyek tersebut emnggunakan mouse atau istilah IT nya dengan menggunakan drag and drop metode.

Berikut ini adalah tahapannya:

Pertama, siapkan memori bolean untuk menetapkan apakah kondisi saat ini mouse sedang di klik atau tidak. dan memori untuk menyimpan posisi awal klik mouse, dan perbedaan lokasi antara klikan mouse dengan posisi obyek (pojok kiri atas), hal ini perlu di hitung karena obyek yang akan kita gerakan mengacu pada pergerakan dari posisi klikan mouse.

private bool isDragging = false;
private Point initialpos, translatedpos;

Kedua, buat operasi untuk kejadian pada saat mouse di tekan. Pada saat mouse di tekan maka status dari isDragging akan kita set menjadi True dan kita mendapatkan posisi awal klikan mouse di window yang kita simpan di initialpos.

private void MainForm_MouseDown(object sender, MouseEventArgs e)
  {
     this.isDragging = true;
     initialpos = e.Location;
  }

Ketiga, kita buat operasi untuk kejadian pada saat mouse di gerakan. Pada saat ini tentukan dahulu apakah status dari mouse sedang di klik atau tidak. Bila di klik (di tahan kliknya) maka kita hitung perbedaan antara posisi awal klikan mouse dengan posisi dari obyek dan kita update posisi dari obyek sesuai gerakan dari mouse kita secara langsung.

private void MainForm_MouseMove(object sender, MouseEventArgs e)
  {
      if(isDragging)
      {
         translatedpos.X = e.X - initialpos.X;
         translatedpos.Y = e.Y - initialpos.Y;
         this.Location = new Point(this.Location.X+translatedpos.X, this.Location.Y+translatedpos.Y);
      }
  }

Keempat, jangan lupa untuk membuat operasi mengembalikan status dari isDragging saat klikan mouse di lepas.

private void MainForm_MouseUp(object sender, MouseEventArgs e)
  {
   this.isDragging = false;
  }

Kelima, setelah kita membuat operasi - operasi tersebut di atas yang pada dasarnya akan kita terapkan untuk mouse event maka kita perlu meng update mouse event - mouse event yang sesuai dengan cara seperti ini di bagian

private void InitializeComponent()
  {
   ...   
   this.MouseDown += new System.Windows.Forms.MouseEventHandler(this.MainForm_MouseDown);
   this.MouseMove += new System.Windows.Forms.MouseEventHandler(this.MainForm_MouseMove);
   this.MouseUp += new System.Windows.Forms.MouseEventHandler(this.MainForm_MouseUp);
   ...} 

Contoh bisa di download di sini ring

Segitu saja dulu , selamat mencoba