下面是化简后的一个模型,在UpdatePanel中有一TextBox\Button\Label,单击Button,则在label中显示TextBox中的内容,代码如下:
protected void Button1_Click1(object sender, EventArgs e)
{
    Label1.Text = TextBox1.Text;
    TextBox1.Text="";
    TextBox1.Focus();
}目前要在文本框中输入中文,需要保持中文输入状态,操作也正常,但问题是:单击Button完成显示后,虽然文本框有焦点,但却不能输入中文,必须在页面其他地方单击一下(使文本框失去焦点),再单击文本框,使其重新获得焦点,输入法才能继续输入。显然操作不太友好。如何能不老单鼠标就能直接进行汉字的输入呢?模型很简单,希望能测试后再回答,谢谢!!!

解决方案 »

  1.   


    应该是TextBox1.Focus();这句话的原因。。
      

  2.   


    ScriptManager.RegisterStartupScript去实现得到焦点看看。。不用Focus();
      

  3.   

    看看这个
    http://topic.csdn.net/u/20090214/03/82acd339-73c8-4e32-8f54-d5ee65e2969f.html
      

  4.   


    终于弄出来了汗都出来了。。 protected void Page_Load(object sender, EventArgs e)
        {
            ScriptManager.RegisterStartupScript(UpdatePanel1, this.GetType(), "", "document.getElementById('" + TextBox1.ClientID + "').focus();", true);
        }    protected void Button1_Click(object sender, EventArgs e)
        {
            Label1.Text = TextBox1.Text;
            TextBox1.Text = "";
            ScriptManager.RegisterClientScriptBlock(UpdatePanel1, this.GetType(), "", "document.getElementById('" + TextBox1.ClientID + "').focus();", true);      
        }
      

  5.   

    都没啥问题  应该是别的原因
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title></title>
        
    </head>
    <body>
        
        <form id="form1" runat="server">
        <asp:ScriptManager ID="ScriptManager1" runat="server">
        </asp:ScriptManager>
        <div>
            <asp:UpdatePanel ID="UpdatePanel1" runat="server">
                <ContentTemplate>
                    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
                    <asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />
                    <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
                </ContentTemplate>
            </asp:UpdatePanel>
            
        </div>    </form>
        
    </body>
    </html>[code=C#]
    public partial class TextBoxSendMessage : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {        }        protected void Button1_Click(object sender, EventArgs e)
            {
                Label1.Text = TextBox1.Text;
                TextBox1.Text = "";
                TextBox1.Focus();//加上焦点自动回到TextBox
            }
        }[/code]
      

  6.   


    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title></title>
        
    </head>
    <body>
        
        <form id="form1" runat="server">
        <asp:ScriptManager ID="ScriptManager1" runat="server">
        </asp:ScriptManager>
        <div>
            <asp:UpdatePanel ID="UpdatePanel1" runat="server">
                <ContentTemplate>
                    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
                    <asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />
                    <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
                </ContentTemplate>
            </asp:UpdatePanel>
            
        </div>    </form>
        
    </body>
    </html>
        public partial class TextBoxSendMessage : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {        }        protected void Button1_Click(object sender, EventArgs e)
            {
                Label1.Text = TextBox1.Text;
                TextBox1.Text = "";
                TextBox1.Focus();//加上焦点自动回到TextBox
            }
        }
      

  7.   


    上午给你的方法还是点问题下午仔细试了一下。上面方法在有母版页的情况下可以使用但还是不周全。重新想了个方法。。写了篇BLOGLZ再试试