Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Windows tabanlı uygulamalarda sürükle ve bırak işlemlerini gerçekleştirmek için, en çok DragEnter, DragLeaveve DragDrop olayları olmak üzere bir dizi olayı işlemeniz gerekir. Bu olayların olay bağımsız değişkenlerinde bulunan bilgilerle çalışarak sürükle ve bırak işlemlerini kolayca kolaylaştırabilirsiniz.
Verileri Sürükleme
Tüm sürükle ve bırak işlemleri sürüklemeyle başlar. Sürükleme başladığında verilerin toplanmasına olanak tanıyan işlevsellik, DoDragDrop yönteminde uygulanır.
Aşağıdaki örnekte, en sezgisel olduğu için sürükleme işlemini başlatmak için MouseDown olayı kullanılır (çoğu sürükle ve bırak eylemi fare düğmesine basılmasıyla başlar). Ancak, herhangi bir olayın sürükle ve bırak işlemi başlatmak için kullanılabileceğini unutmayın.
Uyarı
Bazı denetimlerin özel sürüklemeye özgü olayları vardır. ListView ve TreeView denetimleri, örneğin, bir ItemDrag olayına sahip olur.
Sürükleme işlemi başlatmak için
Sürüklemenin başlayacağı denetimin MouseDown olayında, sürüklenecek verileri ayarlamak ve sürüklemenin izin verilen etkisini belirlemek için
DoDragDrop
yöntemini kullanın. Daha fazla bilgi için bkz. Data ve AllowedEffect.Aşağıdaki örnekte sürükleme işleminin nasıl başlatıldığı gösterilmektedir. Sürüklemenin başladığı denetim bir Button denetimidir, sürüklenen veriler Text denetiminin Button özelliğini temsil eden dizedir ve izin verilen efektler kopyalanır veya taşınır.
Private Sub Button1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Button1.MouseDown Button1.DoDragDrop(Button1.Text, DragDropEffects.Copy Or DragDropEffects.Move) End Sub
private void button1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e) { button1.DoDragDrop(button1.Text, DragDropEffects.Copy | DragDropEffects.Move); }
Uyarı
Tüm veriler
DoDragDrop
yönteminde parametre olarak kullanılabilir; yukarıdaki örnekte, Text denetiminin Button özelliği kullanılmıştır (bir değeri sabit kodlamak veya veri kümesinden veri almak yerine) çünkü özellik sürüklenmekte olan konumla (Button denetimi) ilgiliydi. Sürükle ve bırak işlemlerini Windows tabanlı uygulamalarınıza eklerken bunu göz önünde bulundurun.
Sürükleme işlemi etkinken, sürükleme işlemini devam ettirmek için sistemden izin isteyen QueryContinueDrag olayını işleyebilirsiniz. Bu yöntemi işlerken, imleç üzerine geldiğinde TreeNode denetimindeki bir TreeView genişletme gibi sürükleme işlemi üzerinde etkisi olacak yöntemleri çağırmanız da uygun bir noktadır.
Veri Siliniyor
Windows Formu veya denetimindeki bir konumdan veri sürüklemeye başladıktan sonra doğal olarak bir yere bırakmak istersiniz. İmleç, bir form veya denetimin veri bırakma için doğru yapılandırılmış bir alanını geçtiğinde değişir. Windows Formu veya denetimindeki herhangi bir alan, AllowDrop özelliği ayarlanarak ve DragEnter ile DragDrop olayları işlenerek bırakılan verileri kabul edebilir.
Bırakma işlemi gerçekleştirmek için
AllowDrop özelliğini true olarak ayarlayın.
Bırakmanın gerçekleşeceği denetimin
DragEnter
olayında, sürüklenen verilerin kabul edilebilir bir türde olduğundan emin olun (bu örnekte, Text). Bırakma işlemi gerçekleştiğinde oluşacak etkiyi, kod DragDropEffects numaralandırmasındaki bir değere ayarlar. Daha fazla bilgi için bkz. Effect.Private Sub TextBox1_DragEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles TextBox1.DragEnter If (e.Data.GetDataPresent(DataFormats.Text)) Then e.Effect = DragDropEffects.Copy Else e.Effect = DragDropEffects.None End If End Sub
private void textBox1_DragEnter(object sender, System.Windows.Forms.DragEventArgs e) { if (e.Data.GetDataPresent(DataFormats.Text)) e.Effect = DragDropEffects.Copy; else e.Effect = DragDropEffects.None; }
Uyarı
Kendi nesnenizi, DataFormats yönteminin Object parametresi olarak belirterek SetData tanımlamak mümkündür. Bunu yaparken, belirtilen nesnenin serileştirilebilir olduğundan emin olun. Daha fazla bilgi için bkz. ISerializable.
Bırakmanın gerçekleşeceği denetim için DragDrop olayında, sürüklenen verileri almak için GetData yöntemini kullanın. Daha fazla bilgi için bkz. Data.
Aşağıdaki örnekte, TextBox denetimi, bırakma işleminin gerçekleşeceği yere sürüklenen denetimdir. Kod, Text denetiminin TextBox özelliğini sürüklenen verilere eşit olarak ayarlar.
Private Sub TextBox1_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles TextBox1.DragDrop TextBox1.Text = e.Data.GetData(DataFormats.Text).ToString End Sub
private void textBox1_DragDrop(object sender, System.Windows.Forms.DragEventArgs e) { textBox1.Text = e.Data.GetData(DataFormats.Text).ToString(); }
Uyarı
Ayrıca, KeyState özelliğiyle çalışabilirsiniz; böylece sürükle ve bırak işlemi sırasında tuşlara bağlı olarak, belirli etkiler meydana gelir (örneğin, CTRL tuşuna basıldığında sürüklenen verilerin kopyalanması standarttır).
Ayrıca bakınız
.NET Desktop feedback