WebBrowser控件滚动到底部

时间:2008-09-05 18:12:31

标签: .net user-controls wysiwyg

我正在使用System.Windows.Forms.WebBrowser Control处理一个简单的聊天应用程序,以显示用户和收件人之间的消息。每次更新控件的DocumentText时,如何让控件自动滚动到底部?

5 个答案:

答案 0 :(得分:5)

谢谢你们 - 我把你们两个都投了票,但两者都不能解决我的情况。我最终做的是

webCtrl.Document.Window.ScrollTo(0, int.MaxValue);

答案 1 :(得分:2)

我会使用AutoScrollOffset属性并将其设置为WebBrowser控件的左下角,如下所示:

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

答案 2 :(得分:1)

这可能有些过分,但你也可以在WebBrowser控件上调用脚本,然后使用body标签的scroll属性。或者窗口的scrollTo方法。

要调用脚本,WebBrowser控件具有Document属性,该属性表示DOM中的文档对象。它有一个名为InvokeScript的方法,您可以传递一串JavaScript来执行。

但是......如果AutoScrollOffset属性有效......是的,我只是使用它而不是进入JavaScript:)

答案 3 :(得分:0)

您可以将滚动位置保持在顶部,并在上方插入新信息。

不需要滚动到底部,它看起来像twitter:)

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

user1:
  old message

答案 4 :(得分:0)

retrieveList(name);

 public void retrieveList(String name) {
        Toast.makeText(getActivity(),name,Toast.LENGTH_SHORT).show();
        search.clear();
        database = mdb.getReadableDatabase();
        Cursor cursor = database.rawQuery("SELECT * FROM " + MyDatabaseHelper.TABLE_TASKCOMPLETED + " WHERE Name = ? ", new String[]{name}, null);
        if (cursor != null && cursor.getCount() > 0) {
            while (cursor.moveToNext()) {
                int iD = cursor.getInt(cursor.getColumnIndex("ID"));
                String allTask = cursor.getString(cursor.getColumnIndex("Title"));
                String allTime = cursor.getString(cursor.getColumnIndex("Time"));
                String allDate = cursor.getString(cursor.getColumnIndex("Date"));

                if (adapter != null) {
                    adapter.add(iD, allTask, allTime, allDate);
                    listview.setAdapter(adapter);
                    adapter.getCount();
//                    check();
                }
            }
        } else {
        }
    }