İlginizi Çekebilir
  1. Ana Sayfa
  2. C Sharp

C# Web Browser Otomatik En Alta İndirmek

C# Web Browser Otomatik En Alta İndirmek
+ - 0

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.

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.

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…

Bu yazıya tepkiniz ne oldu?

Yazar Hakkında

Lise Ağ Sistemleri ve Yönetimi bölümü, üniversite Bilgisayar Programcılığı bölümü Ön Lisans, Yönetim Bilişim Sistemleri Lisans öğrenimi aldım. Askerlik görevimi tamamladım. Uzmanlık alanım; C# ve SQL Programlama dilleri ile müşteri odaklı, kullanıcı dostu ERP ve CRM gibi sistemleri geliştirmektir. Ayrıca şuanda PHP ve MYSQL alanında projeler geliştirmekteyim. C++, Phyton, Xamarin, MVC gibi konuları öğrenmek ve kendimi geliştirme çabası içerisindeyim. Discord için: https://discord.gg/FBxZeHu9

Değerli yorumlarınızı bekliyorum. :)