用ajax写了个聊天室,里面的聊天窗口是textbox,在UpdatePanel内,每次刷新后textbox的滚动条总是在最顶端,我想让他滚动到最后一行,请高人指点。。
分不多了。。

解决方案 »

  1.   

    方法是使用ScrollToCaret方法,自动滚动到插入符的位置,如:   1. textBox.AppendText(Label);  
       2. textBox.ScrollToCaret();  
      

  2.   

    哥哥没有,网上都说用这个方法,可这不是winform,给你看看后台
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Windows;
    using System.Text;
    using System.Data;
    using System.Windows.Forms;  
    using System.Runtime.InteropServices;
    using System.ComponentModel;
    using System.Drawing;public partial class TrainCourtRoom : System.Web.UI.Page
    {
        string trainchar
        {
            get
            {
                return Request.QueryString["traincode"].ToString() + "char";
            }
        }
        string trainuser
        {
            get
            {
                return Request.QueryString["traincode"].ToString() + "user";
            }
        }
        protected void Page_Load(object sender, EventArgs e)
        {
                
            if (Label1.Text == "")
            {
                if (Application[trainuser] != null)
                {
                    Application[trainuser] += DateTime.Now.ToLongTimeString() + Request.QueryString["username"].ToString() + Request.QueryString["rolename"].ToString() + "登陆<br/>";
                }
                else
                {
                    Application[trainuser] = DateTime.Now.ToLongTimeString() + Request.QueryString["username"].ToString() + Request.QueryString["rolename"].ToString() + "登陆<br/>";
                }
                Label1.Text = Application[trainuser].ToString();
            }
            Label1.Text = Application[trainuser].ToString();
            if (Application[trainchar] != null)
            {
                TextBox3.Text = Application[trainchar].ToString();
            }        //ScriptManager1.GetRegisteredStartupScripts(UpdatePanel1,GetType(),"Refresh","javascript:document.getElementById('TextBox3').scrollTop=document.getElementById(''TextBox3').scrollHeight;", true);
        }    protected void Button1_Click(object sender, EventArgs e)
        {
            TextBox3.Text += DateTime.Now.ToLongTimeString() + "(" + Request.QueryString["username"].ToString() + ")" + Request.QueryString["rolename"].ToString() + "说:" + TextBox2.Text + System.Environment.NewLine;
            TextBox2.Text = "";
            Application[trainchar] = TextBox3.Text;
           
        }
        protected void Timer1_Tick(object sender, EventArgs e)
        {
            if (Application[trainchar] != null)
            {
                TextBox3.Text = Application[trainchar].ToString();
            }
            //this.ScriptManager1.SetFocus(this.TextBox2.ClientID);//设置焦点会影响输入法
        }
    }
      

  3.   

    same topichttp://topic.csdn.net/u/20091202/14/81f02656-79ec-4dd3-ad1d-31b73667a06f.html
      

  4.   

    page里有个属性EnableViewState可以实现记住上次的滚动条位置
      

  5.   

    可是怎么实现想qq那样可以控制滚动条随意看某行的消息??UpdatePanel一直在刷,刚找到又刷了下面了