2008-09-05 13 views
2

Kullanıcı ve alıcı arasındaki iletileri görüntülemek için System.Windows.Forms.WebBrowser Denetimini kullanarak basit bir sohbet uygulaması üzerinde çalışıyorum. Kontrole ilişkin DocumentText'i her güncellediğimde kontrolü otomatik olarak aşağı kaydırmak için nasıl alabilirim?WebBrowserControl Scroll to Bottom

+0

benzer soru: [? System.Windows.Forms.WebBrowser sonuna kadar kaydırmak için nasıl] (http: //stackoverflow.com/questions/990651/how-to-scroll-to-end-of-system-windows-forms-webbrowser) – infografnet

cevap

5

Teşekkürler çocuklar girme o kullanırsınız - ikinizi de oy verilen ancak ne için dışarı çalışacak benim durumum. Ne yaptım bitti

+1

Eğer bunu VB'de yapıyorsanız, Integer.MaxValue kullanmayın, Int16 kullanın .MaxValue yerine. – Andy

2

Ben AutoScrollOffset özelliğini kullanın ve onu WebBrowser denetiminin sol alt set, bu nedenle bir şey gibi olacaktır:

webCtrl.AutoScrollOffset = new Point(0, webCtrl.Height); 
1

Bu muhtemelen overkill, ama aynı zamanda WebBrowser denetimi komut dosyası çağırmak ve daha sonra olabilir Gövde etiketinin kaydırma özelliklerini kullanın. Veya pencerenin scrollTo yöntemi.

Komut dosyasını çağırmak için WebBrowser denetimi, DOM'dan belge nesnesini temsil eden bir Document özelliğine sahiptir. InvokeScript adında, çalıştırılacak bir JavaScript dizesini geçirebileceğiniz bir yöntemi vardır.

Ama ... AutoScrollOffset özelliği çalışıyorsa ... evet, sadece yerine JavaScript :)

0

Üstte kaydırma pozisyonuna devam edebilir ve üstüne yeni mesaj ekleyebilirsiniz. , Alta twitter :) gibi onun göz kaydırma gerekmez

user2: 
    new message ← a new message is insert on top 

user1: 
    old message 
0
public virtual void ScrollMessageIntoView() 
     { 

      System.Windows.Forms.Application.DoEvents(); 
      if (browser == null || browser.IsDisposed) 
       return; 

      if (browser.Document == null) 
      { 
       browser.Document.Window.ScrollTo(0, 
       browser.Document.Body.ScrollRectangle.Height); 
      } 
     } 
İlgili konular