none
为什么ToolStrip上的控件会自动失去焦点? RRS feed

  • 问题

  • 窗体上有一ToolStrip容器及其它控件,ToolStrip上有ToolStripTextbox等控件。

    运行时,ToolStripTextbox获得焦点后,接着点击窗体外其它地方(如系统工具栏),会发现ToolStripTextbox失去了焦点,并把焦点转移到了其它控件上。这是为什么?如何避免?


    韩立学
    2011年12月28日 11:38

答案

全部回复

  • 窗体上有一ToolStrip容器及其它控件,ToolStrip上有ToolStripTextbox等控件。

    运行时,ToolStripTextbox获得焦点后,接着点击窗体外其它地方(如系统工具栏),会发现ToolStripTextbox失去了焦点,并把焦点转移到了其它控件上。这是为什么?如何避免?


    韩立学

    一般在窗体中你点击某个控件,该控件自动被聚焦了(也就是获得焦点了)。我觉得无法修改。建议你改用TextBox取代numericDropdown那个控件。

       QQ我:讨论(Talk)
    下载MSDN桌面工具(Vista,Win7)
    我的博客园
    慈善点击,点击此处


    2011年12月29日 2:50
    版主
  • 谢谢回复!

    如此处理,其它控件还能够获得焦点吗?

    发生失去焦点事件,并非因为人工点击(系统工具栏不会获得焦点)。如果是VB蓄意而为,似乎没什么意义。


    韩立学

    2011年12月29日 2:58
  • 谢谢回复!

    如此处理,其它控件还能够获得焦点吗?

    发生失去焦点事件,并非因为人工点击(系统工具栏不会获得焦点)。

    一个WinForm同一时刻只能一个控件获取焦点,不可N个控件同时都有焦点的。所以其它控件不可能再获得焦点了,除非代码指定。

    一定要系统工具栏中TextBox获取焦点,只能这样做了。


       QQ我:讨论(Talk)
    下载MSDN桌面工具(Vista,Win7)
    我的博客园
    慈善点击,点击此处
    2011年12月29日 3:02
    版主
  • 问题解决了,ToolStrip.TabStop = True 即可。


    韩立学
    • 已标记为答案 大海怪 2012年1月1日 23:38
    2012年1月1日 23:38