5 November 2025 Wednesday 16:56:30


C#’ta PictureBox’ın Form Ekranında Taşınma İşlemi

C#’ta PictureBox’ın Form Ekranında Taşınma İşlemi

Merhaba bu yazımda C#’ta bir windows formu üzerinde yer alan picturebox’ın mouse ile taşınmasına ilişkin bir öeneği ele almak istiyorum. Bunu yapabilmek için özel bir PictureBox yapmamız gerekiyor öncelikle. Windows form uygulaması oluşturalım ve işe başlayalım.

Özel bir PictureBox oluşturabilmek için PictrureBox kontrolünden miras alacak bir class oluşturmam gerekli. Dolayısı ile projeme bir class ekliyorum.

Csharp’ta PictureBox’ın Form Ekranında Taşınma İşlemi

Bu classım formumdam erişebilir olması için public olarak tanımlı. Ben bu classa SuruklenenPictureBox dedim, özel picturebox vs gibi isimler verebilirsiniz. Aşağıdaki kodlarımı yazıyorum.

using System;
using System.Collections.Generic;
using System.ComponentModel; using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace SurukleBirakPictureBox
{
//PictureBox kontrolündn miras alıyorum. Class aynı zamanda public olarak
tanımlandı
public class SuruklenenPictureBox: PictureBox
{
//constructor oluştuyorum. IContainer interface'inden bir nesne türetiyor ve
bu nesneyi kullanıyorum.
public SuruklenenPictureBox(IContainer container)
{
}
container.Add(this);
//Konum bilgisi tutmak için Point sınıfından bir nesne oluşturdum. Point point;
qury.com.p
//OnMouseDown eventini override ediyorum.
protected override void OnMouseDown (MouseEventArgs e)
{
}
//konum bilgisini point nesnesinin içine atıyorum. point e.Location;
base.OnMouseDown(e);
//OnMouseMove eventini override ediyorum
protected override void OnMouseMove (MouseEventArgs e)
{
//Mouse'un sol tuşuna basarak sürüklediğim pictureboxa ait yeni konum
bilgisinden, eski konum bilgisi çıkıyor ve en son adres konum bilgisini belirliyorum. if(e.Button == MouseButtons.Left)
{
-
this.Left = e.x point.X; this. Tope.Y - point. Y;
base.OnMouseMove(e);
}
}
}

 

Şimdi bu kodlara baktığımızda Yeni oluşturduğumuz class public tipinde çünkü diğer formlardan erişilebilir olmasını sağlıyorum. Ayrıca PictureBox kontrolümden de miras alıyorum. Bir PictureBox’ın windows form üerinde hareket edebilmesine izin verebilmem için standart olan OnMouseDown ve OnmouseMove eventlerini override etmem gerekli. Öncelikle kodlarımda OnMouseDown eventinde formumda yer alan PictureBox kontrolünün konum bilgisini alıyorum. Bunun için ayrıca Point classından point adında bir nesne aldım.

Amacım OnMouseDown eventi ile elde ettiğim ilk pozisyon bilgisini, daha sonra OnMouseMove ile elde ettiğim pozisyon bilgisi ile güncellemek.

Yukarıdaki kodları yazdıktan sonra uygulamamı rebuil ediyorum. Daha sonra solda yer alan toolbox kısmına özel oluşturduğum SuruklenenPictureBox geliyor. Bundan iki adet alıyor ve formuma ekliyorum. İkisine de ayrı ayrı image ekledim.

 

Csharp’ta PictureBox’ın Form Ekranında Taşınma İşlemi 3

 

Formumu çalıştırdığımda form üzeirnde yer alan pictureboxları mouse’un sol tuşu yardımı ile taşıyabildiğinizi göreceksiniz.

 

Csharp’ta PictureBox’ın Form Ekranında Taşınma İşlemi 4

 

Bir sonraki Projelerde görüşmek üzere.

 

img

ibrahim ÖZKAN