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:

  1. Visual C# .NET veya Visual C# 2005'te yeni bir Windows Forms uygulaması oluşturun. Form1 varsayılan olarak oluşturulur.

  2. Form1'e denetim ListBox eklemek için araç kutusunu kullanın.

  3. Özellikler penceresinde, nesnelerin denetime sürüklenebilmesi için denetimin ListBox özelliğini True olarak değiştirinAllowDrop.

  4. Çözüm Gezgini'da Form1'e sağ tıklayın ve ardından Kodu Görüntüle'ye tıklayın.

  5. Olayı işlemek DragEnter için, Windows Form Tasarım Aracı sınıfında oluşturduğu Form1 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;
    }
    
  6. Olayı işlemek DragDrop için, 5. adımda eklediğiniz yöntemin Form1 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]);
    }
    
  7. İki olay işleyicisini denetim olaylarıyla ilişkilendirmek için çağrısından sonra InitializeComponentoluşturucuya Form1 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);
    
  8. Projeyi derleyin ve çalıştırın.

  9. 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: