【问题标题】:How to lost focus of TextBox with clicking on form如何通过单击表单失去文本框的焦点
【发布时间】:2015-07-29 14:28:08
【问题描述】:

我有两个文本框 txtBox1 和 txtBox2。并且 txtBox1 有 LostFocus 事件。 当我的焦点在 txtBox1 并转到 txtBox2 时,txtBox1 的 LostFocus 事件运行良好。

但我的问题是,当我的焦点位于 txtBox1 并且我单击表单上的任意位置时,不会调用 txtBox1 的 LostFocus 事件。我的意思是我怎么能在点击表单时失去 txtBox1 的焦点。

提前致谢。

【问题讨论】:

  • 这很棘手,您可以创建一个不可见的控件来赋予焦点,但实际上至少应该有一个控件具有焦点,您希望用它做什么?
  • 代码Form.Mouseclick可能是这样的:if (txtBox1.Focused) txtBox2.Focus();。焦点必须在某个地方..

标签: c# textbox lost-focus


【解决方案1】:

当单击表单中的某处时试图从文本框失去焦点时,我总是会创建一个“虚拟”文本框或不可见的文本框。像这样的……

<TextBox x:Name="DummyTB" VerticalAlignment="Top" HorizontalAlignment="Left" Grid.Row="2" Width="0" Height="0" />

只需添加您希望虚拟文本框所在的位置。然后在后面的代码中添加...

DummyTB.Focus();

【讨论】:

    【解决方案2】:

    据我所知,Form.Select()Form.Focus() 不会取消选择表单上的任何其他控件。

    不可见的虚拟文本框是不可能的,因为此控件会将this.CanFocus 设置为false

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-06-30
      • 1970-01-01
      • 2016-08-10
      • 1970-01-01
      • 1970-01-01
      • 2015-01-09
      • 2010-10-08
      相关资源
      最近更新 更多