C# Drag Drop İle Dosya Okuma – Sürükle Bırak
Merhaba arkadaşlar. Bu dersimizde C# Drag Drop ile dosya okuma işlemini öreceğiz. Bu dersin içeriği Github projemde yer alacaktır. Bu dersimizde c# drag drop örnekleri yer almaktadır.
C# Drag Drop İşlemi
Öncelikle formumuza bir textbox ekleyelim.
- Multiline özelliğini True yapalım
- Dock özelliğini Fill yapalım
- AllowDrop özelliğini True yapalım. – Bu olmadan çalışmaz.
Sonra formumuzun StartPosition özelliğini de CenterScreen yapalım.
Bu özelleştirmeleri yaptıktan sonra Textbox’a tıklayalım ve c# drag drop file için event bölümünden Drag Drop ve Drag Enter eventlerine çift tıklayarak bu eventleri oluşturalım.
C# DragEnter
Textbox’umuzun DragEnter eventine geleleim ve aşağıdaki kodları yazalım.
private void textBox2_DragEnter(object sender, DragEventArgs e) { if (e.Data.GetDataPresent(DataFormats.FileDrop, false)) { e.Effect = DragDropEffects.All; } }
Kodları açıklamam gerekirse; Buradaki If bloğumuzda kontrol ettiğimiz şey, farenin Textbox üzerine geldiğinde yapmak istediği şeyin ne olduğunu bulmak. Öylece geçiyor mu yoksa bir dosya mı bırakıyor. Eğer bir dosya bırakıyor ise sonuç True olacak ve if bloğumuzdaki kodlar çalışacak.
İf bloğumuzdaki kodlar ile bu nesne için tüm DragDrop işlemlerini aktif et diyoruz.
NOT: Bu kodlar olmadan DragDrop çalışmıyor.
C# DragDrop
Textbox’umuzun DragDrop eventine aşağıdaki kodları yazalım.
private void textBox1_DragDrop(object sender, DragEventArgs e) { if (e.Data.GetDataPresent(DataFormats.FileDrop)) { string[] s = (string[])e.Data.GetData(DataFormats.FileDrop, true); BelgeyiOku(s[0]); } }
Kodları açıklamam gerekirse; Buradaki If bloğumuzda kontrol ettiğimiz şey, farenin Textbox üzerine geldiğinde yapmak istediği şeyin ne olduğunu bulmak. Öylece geçiyor mu yoksa bir dosya mı bırakıyor. Eğer bir dosya bırakıyor ise sonuç True olacak ve if bloğumuzdaki kodlar çalışacak.
Burada BelgeyiOku adında bir metodumuz var. Şimdi metodumuzu verelim.
private string BelgeyiOku(string dosya_yolu) { StreamReader dosyaOku = new StreamReader(dosya_yolu, Encoding.GetEncoding("windows-1254")); string yazi = dosyaOku.ReadLine(); while (yazi != null) { textBox1.Text += (yazi) + Environment.NewLine; yazi = dosyaOku.ReadLine(); } dosyaOku.Close(); return yazi; }
Bu metod asıl işi yapan kısımdır. Yani metin belgesini okuyan ve yazan kodlarımız. C# StreamReader ve StreamWriter Kullanımı ve C# StreamReader Türkçe Karakter Sorunu Çözümü derslerime bakarak yukarıdak kodların ne işe yaradığını görebilirsiniz.
While döngüsü ile tüm metin belgesini satır satır okuyarak textbox nesnemize yazıyoruz. Buradaki Environment.Newline komutu ise bir alt satıra geçmemizi sağlıyor. Bu şekilde metin belgesinin her satırı textbox nesmizdeki bir satıra yazılıyor.
Bu dersimizde bu kadardı arkadaşlar. Diğer derslerimizde görüşmek üzere…
C Sharp Eğitim Seti eğitimi sayfasına gitmek için tıklayınız.
Derslerime özel olarak hazırladığım Github Projeme buradan ulaşabilirsiniz…
Takipte ve Sağlıcakla kalın.