textbox,鼠标 按下光标总是最前面

时间:2022-07-30 00:56:02
无法地位到想要的位置
这是为什么

比如textbox的内容是abc
鼠标单击文本框,想定位到bc之间
科点击后总是在最前面即a前面
这个怎么办

12 个解决方案

#1


       设置SelectionStart 属性,例如
        private void textBox1_MouseClick(object sender, MouseEventArgs e)
        {
            textBox1.SelectionStart = 1;
        } 

#2


http://topic.csdn.net/t/20040726/15/3211168.html

#3


不用吧。。本来就是指到哪里点到哪里的。。你看看是不是还有别的事件加载。。

#4


用的到的,好

#5


谢谢楼上的
可是不是我想要的

我现在希望恢复默认的操作
就是在textbox中鼠标点到哪里光标就到哪里

#6


引用 3 楼 wolf_life 的回复:
不用吧。。本来就是指到哪里点到哪里的。。你看看是不是还有别的事件加载。。


确实有别的事件
我要监控文本的输入
检验文本是否为空

我也感觉问题就在这里
呵呵

#7


有这两个事件
 public void textBoxEmpty_Validating(object sender, CancelEventArgs e)
        {
            TextBox tb = (TextBox)sender;
            if (tb.Text.Length == 0)
            {
                tb.BackColor = Color.Red;
                tb.Tag = false;
                // e.Cancel = true;
            }
            else
            {
                tb.BackColor = System.Drawing.SystemColors.Window;
                tb.Tag = true;
            }
            validateOK();

        }

        public void textBox_TextChanged(object sender, EventArgs e)
        {
            TextBox tb = (TextBox)sender;

            if (tb.Text.Length == 0)
            {
                tb.BackColor = Color.Red;
                tb.Tag = false;
                //e.Cancel = true;
            }

            else
            {
                tb.BackColor = System.Drawing.SystemColors.Window;
                tb.Tag = true;
            }
            validateOK();

        }

#8


public void textBoxEmpty_Validating(object sender, CancelEventArgs e) 
        { 
            TextBox tb = (TextBox)sender; 
            if (tb.Text.Length == 0) 
            { 
                tb.BackColor = Color.Red; 
                tb.Tag = false; 
                // e.Cancel = true; 
            } 
            else 
            { 
                tb.BackColor = System.Drawing.SystemColors.Window; 
                tb.Tag = true; 
            } 
            validateOK(); 

        } 

        public void textBox_TextChanged(object sender, EventArgs e) 
        { 
            TextBox tb = (TextBox)sender; 

            if (tb.Text.Length == 0) 
            { 
                tb.BackColor = Color.Red; 
                tb.Tag = false; 
                //e.Cancel = true; 
            } 

            else 
            { 
                tb.BackColor = System.Drawing.SystemColors.Window; 
                tb.Tag = true; 
            } 
            validateOK(); 

        } 

#9


o(∩_∩)o... 楼主真可爱

#10


引用 9 楼 Nantty 的回复:
o(∩_∩)o... 楼主真可爱

你真瓜

#11


引用 8 楼 gisfarmer 的回复:
C# codepublicvoidtextBoxEmpty_Validating(objectsender, CancelEventArgs e) 
        { 
            TextBox tb=(TextBox)sender;if(tb.Text.Length==0) 
            { 
                tb.BackColor=Color.Red; 
                tb.Tag=false;//e.Cancel = true;}else{ 
                tb.BackColor=System.Drawing.SystemColors.Window; 
                tb.Tag=true; 
            } 
            validateOK(); 


啥意思

#12


validateOK();里面是啥?

#1


       设置SelectionStart 属性,例如
        private void textBox1_MouseClick(object sender, MouseEventArgs e)
        {
            textBox1.SelectionStart = 1;
        } 

#2


http://topic.csdn.net/t/20040726/15/3211168.html

#3


不用吧。。本来就是指到哪里点到哪里的。。你看看是不是还有别的事件加载。。

#4


用的到的,好

#5


谢谢楼上的
可是不是我想要的

我现在希望恢复默认的操作
就是在textbox中鼠标点到哪里光标就到哪里

#6


引用 3 楼 wolf_life 的回复:
不用吧。。本来就是指到哪里点到哪里的。。你看看是不是还有别的事件加载。。


确实有别的事件
我要监控文本的输入
检验文本是否为空

我也感觉问题就在这里
呵呵

#7


有这两个事件
 public void textBoxEmpty_Validating(object sender, CancelEventArgs e)
        {
            TextBox tb = (TextBox)sender;
            if (tb.Text.Length == 0)
            {
                tb.BackColor = Color.Red;
                tb.Tag = false;
                // e.Cancel = true;
            }
            else
            {
                tb.BackColor = System.Drawing.SystemColors.Window;
                tb.Tag = true;
            }
            validateOK();

        }

        public void textBox_TextChanged(object sender, EventArgs e)
        {
            TextBox tb = (TextBox)sender;

            if (tb.Text.Length == 0)
            {
                tb.BackColor = Color.Red;
                tb.Tag = false;
                //e.Cancel = true;
            }

            else
            {
                tb.BackColor = System.Drawing.SystemColors.Window;
                tb.Tag = true;
            }
            validateOK();

        }

#8


public void textBoxEmpty_Validating(object sender, CancelEventArgs e) 
        { 
            TextBox tb = (TextBox)sender; 
            if (tb.Text.Length == 0) 
            { 
                tb.BackColor = Color.Red; 
                tb.Tag = false; 
                // e.Cancel = true; 
            } 
            else 
            { 
                tb.BackColor = System.Drawing.SystemColors.Window; 
                tb.Tag = true; 
            } 
            validateOK(); 

        } 

        public void textBox_TextChanged(object sender, EventArgs e) 
        { 
            TextBox tb = (TextBox)sender; 

            if (tb.Text.Length == 0) 
            { 
                tb.BackColor = Color.Red; 
                tb.Tag = false; 
                //e.Cancel = true; 
            } 

            else 
            { 
                tb.BackColor = System.Drawing.SystemColors.Window; 
                tb.Tag = true; 
            } 
            validateOK(); 

        } 

#9


o(∩_∩)o... 楼主真可爱

#10


引用 9 楼 Nantty 的回复:
o(∩_∩)o... 楼主真可爱

你真瓜

#11


引用 8 楼 gisfarmer 的回复:
C# codepublicvoidtextBoxEmpty_Validating(objectsender, CancelEventArgs e) 
        { 
            TextBox tb=(TextBox)sender;if(tb.Text.Length==0) 
            { 
                tb.BackColor=Color.Red; 
                tb.Tag=false;//e.Cancel = true;}else{ 
                tb.BackColor=System.Drawing.SystemColors.Window; 
                tb.Tag=true; 
            } 
            validateOK(); 


啥意思

#12


validateOK();里面是啥?