请教:如何在Textbox的光标位置插入字符串后,设置Textbox 的 scroll 所处的位置呢?

Hedonism 2010-05-19 02:59:12
如题:
(winform) 如何在Textbox的光标位置插入字符串后,设置Textbox 的 scroll 所处的位置呢?

很抱歉!现只有20分。
...全文
331 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
Johan. 2012-09-16
  • 打赏
  • 举报
回复
planet5563(二楼)
这方法不错。
Hedonism 2010-05-19
  • 打赏
  • 举报
回复

zzx509:
多谢了!
Hedonism 2010-05-19
  • 打赏
  • 举报
回复
4楼:
textBox1.SelectionLength = 0;
textBox1.SelectedText = " 2005-12-4 ";

可是假如textbox原值的第1行里正好包含" 2005-12-4 " 值的话,这样恐怕就有问题了吧!
zzx509 2010-05-19
  • 打赏
  • 举报
回复
Ctrl+D操作后的处理代码改成4楼的。
Hedonism 2010-05-19
  • 打赏
  • 举报
回复
回复zzx509,
是重新设置的其text,因为要在光标所在的位置加入 某字符串,所以先获取了textbox的原值,然后重新组合了新的串后,再赋值给textbox。现就是要将textbox的scroll重定位到原值。
请教:有另外的方法可以实现此功能吗?
Hedonism 2010-05-19
  • 打赏
  • 举报
回复
同此吧,我是把光标定位到 2005-12-4 后面。
zzx509 2010-05-19
  • 打赏
  • 举报
回复
楼主可能把简单的事件弄复杂了,你重设了Text或Lines造成TextBox的光标回到首字符处就那样了。
重设SelectedText不会有这个问题。
zzx509 2010-05-19
  • 打赏
  • 举报
回复

textBox1.SelectionLength = 0;
textBox1.SelectedText = " 2005-12-4 ";

ctrl+D时你是这样设置吗?
Hedonism 2010-05-19
  • 打赏
  • 举报
回复
在文本最后如此是很正常。但是在文本中间添加时就出现了不委的情况:

例:
1 111111111111
2 2222222
3 3333
4 444444
5 5555555
6 6666666
7 77777777
8 88888888888
当前textbox共有文本8行,可只有5行的显示空间。
例:当前正显示着
3
4
5 55555 55555
6
7
此5行,光标正在 5 55555 的后面。
然后,通过ctrl+d 在此处添加 ‘2010-5-19’,
希望是
3
4
5 55555 2010-5-19 55555
6
7
显示在textbox可见区域,可实际是
1
2
3
4
5 55555 2010-5-19 55555
正显示着。
planet 2010-05-19
  • 打赏
  • 举报
回复
textBox1.SelectionStart = textBox1.TextLength;
zzx509 2010-05-19
  • 打赏
  • 举报
回复

textBox1.SelectionStart = textBox1.Text.Length - 1;
textBox1.Text +=rand.Next(100).ToString();
textBox1.SelectionStart = textBox1.Text.Length - 1;
textBox1.ScrollToCaret();

111,098

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧