C# Web Browser Otomatik En Alta İndirmek

C# Web Browser Otomatik En Alta İndirmek

4 Ocak 2019 0 Yazar: Mustafa BÜKÜLMEZ
Toplam Görüntülenme : 173
Yaklaşık okuma süresi : 4 DK
C# Web Browser Sayfanın Yüklenmesini Beklemek
C# Web Browser Son Sürüm IE Kullanmak
C# Web Browser Otomatik En Alta İndirmek
5 (100%) 1 Oy

C# Web Browser Otomatik En Alta İndirmek, yazım ile C# eğitim setime devam ediyorum. Bu yazımızda C# web browser da sayfa yüklendiğinde otomatik olarak en alta inmesi işlemini nasıl yapacağımızı göreceğiz.

C# Web Browser Otomatik En Alta İndirmek

Şimdi soracaksınız bu ne işe yarayacak. Ben size bunu neden kullandığımı anlatayım.

Şirket içerisinde basit bir mesajlaşma uygulaması yazmıştım kısa süre önce… Buradaki mesajların da konuşma balonları içerisinde gösterilmesini istemişlerdi. Bir önceki dersimde C# Web Browser Son Sürüm IE Kullanmak dersindeki içeriği de bu konuşma balonlarını yapan css çalışmadığı için gerekli olmuştu.

Advertisements

HTML kodlarını oluşturduktan sonra en son gönderilen mesaj en altta olacağından dosya yüklendikten sonra web browserin’da en alta inmesi gerekiyor ki son gönderilen mesaj görünebilsin. Bu işlem içinde otomatik olarak en alta inmesi gerekiyor. Bu dersimde de bu kodları vereceğim.

Öncelikle formumuza bir timer ekliyoruz. Timer ‘in Interval’ı varsayılan olarak kalabilir. (100 ms) Timer eklendikten sonra Tick eventine geliyoruz ve şu kodları yazıyoruz.

            try
            {
                webBrowser1.Document.Window.ScrollTo(0, 999999999);
                if (999999999 > (webBrowser1.Document.Body.ScrollRectangle.Height))
                {
                    tmrAutoScroll.Enabled = false;
                    return;
                }
            }
            catch (NullReferenceException) {  }

Buradaki kodlarda  999999999 sayısının amacı direk olarak en alta inmesini istememdendir. Sağ daki dikey scroll ne kadar uzun olursa olsun her seferinde en alta inmesi gerekiyor. O sebeple çok büyük bir sayı verdim.

Timer her tick dediğinde bu kodlar çalışacak ve her zaman otomatik olarak en alta inecek.

Şimdi bu buraya kadar istediğimizi başardık ancak eski mesajlara göz atmak istediğimizde timer çalışıyor olduğundan geri en alta inecek. Bu yüzden eski mesajlara göz atamayacağız. Bunun için de birkaç satır daha kod yazacağız.

İlgili İçerik  C# MdiForm İşlemleri ve Panel İçinde Form Açmak

Web Browser üzerinde mouse well yaptığımızda yani mouse tekerleğini yukarı aşağı yaptığımızda timer’in durması gerekiyor ki en alta inmesin.

Web Browser’in olduğu formun load eventi içerisinde şu event tanımlamasını yapıyoruz.

 webBrowser1.Document.MouseMove += new HtmlElementEventHandler(this.Document_MouseMove);

Bunu yapmamızın sebebi, WebBrowser nesnesinin MouseMove eventi aslında yok. Ama bu şekilde bir event ataması yaparak bu eventi kullanabiliyoruz. Yani WebBrowser nesnesinin event sayfasını açtığınızda MouseMove eventi göremezsiniz.

Şimdi eventimizi yazalım.

       private void Document_MouseMove(object sender, HtmlElementEventArgs e)
        {
            tmrcroll.Enabled = false;
        }

Otomatik scroll yapan timeri durdurduk. Artık otomatik aşağı inmeyecektir. Bu timer’i da mesaj gönderme butonu click eventi içinde tekrar çalıştırdığımızda otomatik en alta inme işlemi devam edecektir.


C# Web Browser Otomatik En Alta İndirmek, yazımızda bu kadar 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…

Önceki ders ile bağlantılı bir ders olduğundan buradaki kodlar da github projesine eklenmedi.

Sağlıcakla ve takipte kalın…

C# Web Browser Sayfanın Yüklenmesini Beklemek
C# Web Browser Son Sürüm IE Kullanmak