winform下文本框获取焦点时全选问题
我用下面的事件怎么没反应呢??
private void textBox1_Enter(object sender, EventArgs e)
{
textBox1.SelectionStart = 0;
textBox1.SelectionLength = textBox1.Text.Length;
}
各位帮帮忙
[解决办法]
private void textBox1_Enter(object sender, EventArgs e)
{
this.textBox1.HideSelection = false;
textBox1.SelectionStart = 0;
textBox1.SelectionLength = textBox1.Text.Length;
}
[解决办法]
textBox1.SelectAll();
[解决办法]
貌似不对啊。我刚试过。
[解决办法]
this.textbox1.SelectAll();
[解决办法]
用Tab按键切换焦点默认就是自动选中的
而鼠标点击就不会,因为自动选中后鼠标按下又会改变选中的位置
7楼说的方法KeyUp中处理是可行的,放到KeyDown效果会更好
这里有个问题,如果用户想通过鼠标点击改变选中的位置就无效了,因为每次点击都会切换焦点
所以得有个标志判断一下,是否是焦点切换的第一次点击
如果点击的时间和焦点的时间相差50毫秒以内则认为是第一次点击
参考如下代码:
long mouseEnterTick = 0;private void textBox1_MouseDown(object sender, MouseEventArgs e){ if (Environment.TickCount - mouseEnterTick < 50) ((TextBox)sender).SelectAll();}private void textBox1_Enter(object sender, EventArgs e){ mouseEnterTick = Environment.TickCount; ((TextBox)sender).SelectAll();}
[解决办法]
有些笔误---因为每次点击都会全选
下面的((TextBox)sender).SelectAll();是测试用的,可以删除掉
private void textBox1_Enter(object sender, EventArgs e){ mouseEnterTick = Environment.TickCount;}
[解决办法]
加了 this.textBox1.HideSelection = false;
后我这边是可以的啊
[解决办法]
to ETstudio,
HideSelection属性表示在失去焦点的时候是否隐藏选中的蓝框
这个属性控制的是显示状态,并不会影响全选
楼主的问题是处理“获得焦点”的情况,不是“失去焦点”的情况,是处理“选中”而不是处理“显示”。
呵呵,楼主貌似失踪了...