奇怪的 Control.Focus() 的问题:

bflovesnow 2004-12-08 08:53:02
打算在 Form_Load 控制某个 text/button 的 焦点
可发现总是 TabIndex 最小的那个被 Focus()
拿代码 Control.Focus() 怎么也无法控制。

请问有什么解决办法?
...全文
205 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
bflovesnow 2004-12-09
  • 打赏
  • 举报
回复
楼上正解!
结贴!
lyvvvv 2004-12-09
  • 打赏
  • 举报
回复
对,在Form_Load事件中focus总是会落到TabIndex 最小得控件,所以你可以在把代码Control.Focus()写到Form_Activated事件中
bflovesnow 2004-12-09
  • 打赏
  • 举报
回复
up
bflovesnow 2004-12-09
  • 打赏
  • 举报
回复
赫赫,看来很多人遇到这样的问题~~

请大家继续关注~~
bluellh 2004-12-08
  • 打赏
  • 举报
回复
wntjc()说的没错,我现在找到一个最简单的解决办法:(rtb是一个RichTextBox控件),就是
利用TextChanged事件,好像其他事件都不怎么行。
this.rtb.TextChanged += new System.EventHandler(this.rtb_TextChanged);

private void rtb_TextChanged(object sender, System.EventArgs e)
{
rtb.Focus();
rtb.ScrollToCaret();
}
这样虽然性能上比较浪费,但是能达到获取Focus并自动滚屏的效果。

wmt85(深山老翁) 的 修改 TabIndex不行。
假以辞色 2004-12-08
  • 打赏
  • 举报
回复
应该是在窗口类的Load事件中用Focus();方法,你看一下,你另建一个button控件,在click事件中加入你那个Control.Focus();看你那个控件本能不能得到焦点。
深山老翁 2004-12-08
  • 打赏
  • 举报
回复
这样算了
button.TabIndex = 0;
button.Focus();
那个控件要获取光标就设置TabIndex为0;
bluellh 2004-12-08
  • 打赏
  • 举报
回复
我也遇到同样问题,寻求方法中,CanFocus返回true,但是Focus()后Focused还是false,真奇怪。

110,538

社区成员

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

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

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