Visual C# uygulamasında dosya sürükle ve bırak işlevi sağlama
Bu makalede, Visual C# uygulamasında dosya sürükle ve bırak işlevinin nasıl sağlanıp sağlan olduğu gösterilmektedir.
Orijinal ürün sürümü: Visual C++
Özgün KB numarası: 307966
Özet
Bu makalede açıklanan adım adım yordam, Visual C# uygulamasında dosya sürükle ve bırak işlevinin nasıl sağlandığını gösterir. Dosya ListBox
sürükle ve bırak yordamının hedefi olarak bir denetim kullanılır.
Gereksinimler
Bu listede ihtiyacınız olan önerilen donanım, yazılım, ağ altyapısı ve hizmet paketleri özetlenmiştir: Visual C#.
Bu makalede, aşağıdaki konular hakkında bilgi sahibi olduğunuz varsayılır:
Windows Forms ListBox control
Windows Forms event handling
Örneği Derleme Adımları
ListBox denetimi, işlemeniz gereken iki sürükle ve bırak olayı sağlar: DragEnter
ve DragDrop
. Olay, DragEnter
bir nesneyi denetimin sınırları içinde sürüklediğinizde gerçekleşir ve sürüklenen nesnenin denetime bırakılmasına izin vermek istediğiniz nesne olup olmadığını belirlemek için kullanılır. Bu olayı, bir dosyanın veya dosyaların denetime sürüklendiği durumlar için işlersiniz. Bu, nesne sürüklenmekte olan nesneye bağlı olarak denetim üzerinde sürüklendiğinde uygun simgenin görüntülenmesini sağlar. Olay, DragDrop
sürüklenen nesne denetimde serbest bırakıldığında gerçekleşir. Nesneyi almak için bu olayı işlersiniz. Data nesnesi, verileri almak için kullanılır.
Data nesnesinin GetData
yöntemi, denetime sürüklenen ListBox
dosyaların tam yol adlarını içeren bir dize dizisi döndürür. Dosyalarda gereken işlemleri gerçekleştirmek için bu dosya yolu bilgilerini kullanabilirsiniz. Örneğin, ad alanında System.IO
sınıfları kullanarak dosyaları açabilir ve okuyabilir, dosyaları taşıyabilir veya dosyaları yeni bir konuma kopyalayabilirsiniz. Bu örnekte, denetime sürüklenen ListBox
dosyalara tam yolu eklemeniz gerekir.
Visual C# uygulamasında dosya sürükle ve bırak işlevi sağlamak için şu adımları izleyin:
Visual C# .NET veya Visual C# 2005'te yeni bir Windows Forms uygulaması oluşturun. Form1 varsayılan olarak oluşturulur.
Form1'e denetim
ListBox
eklemek için araç kutusunu kullanın.Özellikler penceresinde, nesnelerin denetime sürüklenebilmesi için denetimin
ListBox
özelliğini True olarak değiştirinAllowDrop
.Çözüm Gezgini'da Form1'e sağ tıklayın ve ardından Kodu Görüntüle'ye tıklayın.
Olayı işlemek
DragEnter
için, Windows Form Tasarım Aracı sınıfında oluşturduğuForm1
kod bölümünün altına aşağıdaki yöntemi ekleyin:private void listBox1_DragEnter(object sender, System.Windows.Forms.DragEventArgs e) { if(e.Data.GetDataPresent(DataFormats.FileDrop)) e.Effect = DragDropEffects.All; else e.Effect = DragDropEffects.None; }
Olayı işlemek
DragDrop
için, 5. adımda eklediğiniz yönteminForm1
hemen ardından sınıfına aşağıdaki yöntemi ekleyin:private void listBox1_DragDrop(object sender, System.Windows.Forms.DragEventArgs e) { string[] s = (string[]) e.Data.GetData(DataFormats.FileDrop, false); int i; for(i = 0; i < s.Length; i++) listBox1.Items.Add(s[i]); }
İki olay işleyicisini denetim olaylarıyla ilişkilendirmek için çağrısından sonra
InitializeComponent
oluşturucuyaForm1
aşağıdaki kodu ekleyin:this.listBox1.DragDrop += new System.Windows.Forms.DragEventHandler(this.listBox1_DragDrop); this.listBox1.DragEnter += new System.Windows.Forms.DragEventHandler(this.listBox1_DragEnter);
Projeyi derleyin ve çalıştırın.
Bir veya daha fazla dosyayı masaüstünden veya başka bir klasörden ListBox denetimine sürükleyin. Dosyaların tam yolu denetime
ListBox
eklenir.
Başvurular
Daha fazla bilgi için aşağıdaki Web sitelerine bakın:
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin