我的程序里对textBox写了其他的事件,也不知道是不是导致该问题的原因.无论如何,该如何解决,请大家指教,谢谢.

解决方案 »

  1.   

    如果是在空的textbox中的话好像没有看到过能定位到指定的位置的实例,如果是在有字符串的textbox中的话,不能定位到指定位置的话应该是你写了鼠标点击事件或者让写了textbox重新fouce()方法
      

  2.   

    现在对于一个textBox我可以使用mouseClick事件将光标移到文本的末尾,但是一个panel中有多个textBox控件,且都有相同的问题,我怎样编写一个函数,一次性实现一个panel内的所有textBox的改变呢?
    对于一个textBox的mouseClick事件的具体代码如下:
            private void txtLXRPho_MouseClick(object sender, MouseEventArgs e)
            {
                this.txtLXRPho.SelectionStart = this.txtLXRPho.Text.Length;
            }
      

  3.   

    编号一个方法? 
    我们正常的做法是让 panel 中所有的 textBox 控件都订阅 同一个MouseClick 的事件.
    代码如下:
          /// <summary>
            /// 窗体加载事件
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void Form1_Load(object sender, EventArgs e)
            {
                foreach (object obj in panel1.Controls)
                {
                    if (obj is TextBox)
                    {
                        ((TextBox)obj).MouseClick += new MouseEventHandler(TextBox_MouseClick);        //给panel1控件中每个文本框订阅 Enter 事件
                    }
                }
            }        /// <summary>
            /// 文本框的鼠标单击事件
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void TextBox_MouseClick(object sender, MouseEventArgs e)
            {
                ((TextBox)sender).SelectionStart = ((TextBox)sender).Text.Length;
            }希望能帮到你吧...
      

  4.   

    写了  
    private void TextBox_MouseClick(object sender, MouseEventArgs e)
            {
                ((TextBox)sender).SelectionStart = ((TextBox)sender).Text.Length;
            }这个事件后,光标被定为到文本的结尾处了,不能通过鼠标自由定位光标了.
      

  5.   

    你在这里做一下判断呀.  在满足条件时,才将光标定位到最后.
            private void TextBox_MouseClick(object sender, MouseEventArgs e) 
            { 
                if(条件)
                {
                    ((TextBox)sender).SelectionStart = ((TextBox)sender).Text.Length; 
                }
            }例如: 你可在外面定义一个控制变量
             private bool isEnd = false;        private void TextBox_MouseClick(object sender, MouseEventArgs e) 
            { 
                if(isEnd == false)
                {
                    ((TextBox)sender).SelectionStart = ((TextBox)sender).Text.Length; 
                    isEnd = true;
                }
            }在你需要的地方,再把 isEnd = false; 即可, 这样基本不怎么会影响你的光标定位问题了.主要要看你的需求的...
      

  6.   

    我也遇到了同样的问题,可不可以把详细点的代码发到[email protected],谢谢