2

System.Windows.Forms.WebBrowser コントロールを使用して、ユーザーと受信者の間のメッセージを表示する単純なチャット アプリケーションに取り組んでいます。コントロールの DocumentText を更新するたびに、コントロールを自動的に一番下までスクロールするにはどうすればよいですか?

4

5 に答える 5

5

みんなありがとう-私はあなたに両方を投票しましたが、どちらも私の状況ではうまくいきませんでした。私がやったのは

webCtrl.Document.Window.ScrollTo(0, int.MaxValue);
于 2008-09-08T17:41:40.660 に答える
2

これはやり過ぎかもしれませんが、WebBrowser コントロールでスクリプトを呼び出してから、body タグのスクロール プロパティを使用することもできます。または、ウィンドウの scrollTo メソッド。

スクリプトを呼び出すために、WebBrowser コントロールには、DOM からのドキュメント オブジェクトを表す Document プロパティがあります。実行する JavaScript の文字列を渡すことができる InvokeScript というメソッドがあります。

しかし... AutoScrollOffsetプロパティが機能する場合...ええ、JavaScriptに入る代わりにそれを使用します:)

于 2008-09-05T21:13:37.180 に答える
2

AutoScrollOffset プロパティを使用して、WebBrowser コントロールの左下に設定すると、次のようになります。

webCtrl.AutoScrollOffset = new Point(0, webCtrl.Height);
于 2008-09-05T18:18:59.253 に答える
0

スクロール位置を上に保ち、新しいメッセージを上に挿入できます。

下にスクロールする必要はありません。Twitterのように見えます:)

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

user1:
  old message
于 2014-03-12T02:32:57.283 に答える
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);
            }
        }
于 2016-11-24T10:03:13.087 に答える