vs.net中的textbox控件,在鼠标 按下光标总是最前面,无法地位到想要的位置 我的程序里对textBox写了其他的事件,也不知道是不是导致该问题的原因.无论如何,该如何解决,请大家指教,谢谢. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果是在空的textbox中的话好像没有看到过能定位到指定的位置的实例,如果是在有字符串的textbox中的话,不能定位到指定位置的话应该是你写了鼠标点击事件或者让写了textbox重新fouce()方法 现在对于一个textBox我可以使用mouseClick事件将光标移到文本的末尾,但是一个panel中有多个textBox控件,且都有相同的问题,我怎样编写一个函数,一次性实现一个panel内的所有textBox的改变呢?对于一个textBox的mouseClick事件的具体代码如下: private void txtLXRPho_MouseClick(object sender, MouseEventArgs e) { this.txtLXRPho.SelectionStart = this.txtLXRPho.Text.Length; } 编号一个方法? 我们正常的做法是让 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; }希望能帮到你吧... 写了 private void TextBox_MouseClick(object sender, MouseEventArgs e) { ((TextBox)sender).SelectionStart = ((TextBox)sender).Text.Length; }这个事件后,光标被定为到文本的结尾处了,不能通过鼠标自由定位光标了. 你在这里做一下判断呀. 在满足条件时,才将光标定位到最后. 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; 即可, 这样基本不怎么会影响你的光标定位问题了.主要要看你的需求的... 我也遇到了同样的问题,可不可以把详细点的代码发到[email protected],谢谢 C#的问题 c#导出数据到EXCEL,如何实现EXCEL滚动行为? 求NHibernate by SharPM64 1.3.1的模板 WCF 零个应用程序(非基础结构)终结点。请教。 面向对象编程与面向接口编程的区别和各自的优缺点? 请教:Process.start()方法 short类型,加上一个立即数,为什么编译错误? 登陆界面问题! 在C#里能用一个变量来代替一个控件名称吗? 如何在静态方法中为在当前页注册一段JS脚本.(结贴王:在线等) C# 自动更新程序 带CRC校验的 看到一个软件数据使用slt后缀的文件保存,这是什么?怎么打开
对于一个textBox的mouseClick事件的具体代码如下:
private void txtLXRPho_MouseClick(object sender, MouseEventArgs e)
{
this.txtLXRPho.SelectionStart = this.txtLXRPho.Text.Length;
}
我们正常的做法是让 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;
}希望能帮到你吧...
private void TextBox_MouseClick(object sender, MouseEventArgs e)
{
((TextBox)sender).SelectionStart = ((TextBox)sender).Text.Length;
}这个事件后,光标被定为到文本的结尾处了,不能通过鼠标自由定位光标了.
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; 即可, 这样基本不怎么会影响你的光标定位问题了.主要要看你的需求的...