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