C# 3.0 RichTextBox’da DetectURL ve LinkClicked Özellikleri

Yağız Gönüler tarafından yayınlanmıştır 17. Nisan 2009 07:23

Uzun zaman aralığından sonra makalelerime C# 3.0 ile ilgili özelliklerle kaldığım yerden devam ediyorum.

RichTextBox’ın C# 3.0 ile gelen bir özelliğinden sizlere bahsetmek istiyorum. Bu özelliğin default özelliği true olduğu için RichTextBox’ın çalışma anında yazılan internet adresleri otomatik olarak linke dönüştürülür. Bunu daha detaylı görebilmek adına Windows formuma bir RichTextBox ekliyorum ve çalışma anında web adresimi yazıyorum.

 














Bu esnada linke tıklanırsa herhangi bir tepki alınmaz. Çünkü RichTextBox nesnesi tarafından link olarak işaretlenen adresin Internet Explorer gibi bir browser ile ziyaret edilebilmesi için bazı işlemleri yapmamız gerekiyor.

Çalışma anında RichTextBox’taki herhangi bir link tıklandığında LinkClicked olayı meydana gelir ve bu olayı temsil eden metot eğer hazırlanmışsa browser bunu algılar. LinkClicked olayını temsil eden metot LinkClickedEventArgs tipinde bir parametreye sahiptir.

Biz de bu parametreleri ve LinkClicked özelliği kullanarak RichTextBox’ımıza yazılan bir web adresinin browserımız tarafından algılanmasını sağlayabiliriz.

Aşağıdaki kodları yazdığımızda gerekli neticeyi alacağız.

private void richTextBox1_LinkClicked_1(object sender, LinkClickedEventArgs e)

        {

            string linkmetni;

            linkmetni = e.LinkText;

            System.Diagnostics.Process.Start(linkmetni);

        }

 

Bu kodda gördüğünüz gibi System.Diagnostics sınıfının Process.Start özelliğinden yararlanıyoruz ve RichTextBox’ımıza yazılan web adresine tıklandığında browserımızın bunu yakalamasını sağlıyoruz. Eğer bu hazırlığı yapmazsak RichTextBox’ımıza yazılan web adresi sadece link halinde duracak ve browserımızın tarafından algılanamayacaktır.

Makalemin içinde bir de sürpriz yapıyorum. Şimdi bir web adresinin RSS dosyasının içeriğini okuyup RichTextBox’a aktaracağım. Yapacağımız tek şey yukarıda görüntüsünü verdiğim forma bir buton ve bir Textbox eklemek ve click olayına aşağıdaki kodları yazmak;

private void button1_Click(object sender, EventArgs e)

        {

            System.Net.HttpWebRequest istek;

            System.Net.HttpWebResponse karsilik;

            istek = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(textBox1.Text);

            karsilik=(System.Net.HttpWebResponse)istek.GetResponse();

            System.IO.Stream akis;

            System.IO.StreamReader okuyucu;

            akis=karsilik.GetResponseStream();

            okuyucu=new System.IO.StreamReader(akis);

            string satir=okuyucu.ReadToEnd();

            richTextBox1.AppendText(satir);

            System.Xml.XmlDocument xml_belge=new System.Xml.XmlDocument();

            xml_belge.LoadXml(satir);

            richTextBox1.Text=xml_belge.InnerText;

        }

 

Amacımız Textbox’ımıza bir rss adresi yazıp butona tıklamak ve ilgili web adresinin bu RSS dosyasının içeriğini RichTextBox’a yazdırmak. Burada özellikle System.Net sınıfının özelliklerinden faydalandım. Öncelikle istek ve karsilik adinda 2 parametre belirledim. Bu parametreler vasıtasıyla TextBox’ımıza yazılan RSS adresine ulaşıp System.IO sınıfının Stream özelliğiyle ilgili karşılığı yakalayıp bir xml dökümanı yardımıyla RSS dosya içeriğini RichTextBox’a attık. Özellikle 2.konu için uygulamalarınızda direkt olmasa da dolaylı olarak çok güzel sonuçlar elde edebileceğiniz bir makale olduğunu düşünüyorum.

Makaleler tam gaz devam edecek. Her sorununuzu benimle paylaşabilirsiniz. Tekrar görüşmek üzere.


Yağız Gönüler
yagizgonuler@gmail.com


Kaynaklar:
http://msdn.microsoft.com/en-us/library/system.io.aspx

http://msdn.microsoft.com/en-us/library/system.net.aspx

http://msdn.microsoft.com/en-us/library/system.xml(VS.71).aspx

Memik Yanık – Visual Studio 2008 ile Visual C# 3.0 For .Net Framework 3.5

Bu yazıyı ilk değerlendiren siz olun

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Etiketler:

Makaleler | Yazılım Geliştirme | Windows



Bu site BlogEngine.NET 1.4.5.0 ile oluşturulmuştur. Türkçe çevirisi BlogEngine TR ekibi tarafından yapılmıştır.
Sitedeki kod ve tasarım değişiklikleri ise Yağız Gönüler tarafından geliştirilmiştir.
2008 © www.yagizgonuler.com

Paslaş

       

Anket

Mesleğinizden arta kalan zamanınızı nelere harcıyorsunuz?







Sonuçlar

Calendar

<<  Şubat 2012  >>
PaSaÇaPeCuCuPa
303112345
6789101112
13141516171819
20212223242526
2728291234
567891011

Yazıları geniş takvimde göster

Ne(ler) Okuyorum?


Ne Dinliyorum?

Bob Marley & The Wailers - Lively Up Yourself (3 saat önce)
Bob Marley & The Wailers - Jamming (3 saat önce)
Bob Marley & The Wailers - Is This Love (3 saat önce)
Bob Marley & The Wailers - Iron Lion Zion (3 saat önce)
Bob Marley & The Wailers - I Shot The Sheriff (3 saat önce)
Bob Marley & The Wailers - Get up,stand up (3 saat önce)
Bob Marley & The Wailers - Exodus (3 saat önce)
Bob Marley & The Wailers - Could You Be Loved (3 saat önce)
Bob Marley & The Wailers - Buffalo Soldier (4 saat önce)
Bob Marley & The Wailers - Africa Unite (4 saat önce)

İstanbul'da Hava

ISTANBUL

Ziyaretçi Sayısı