0

我有 TabControl 和 TabItem。

我在选定的 TabItem 上显示了 UserControl。我的 UserControl 上有 ComboBox(带有 GotFocus="UserControl_GotFocus")。

我想在我的 UserControl 获得焦点时捕捉事件。

这是我的方法:

private void UserControl_GotFocus(object sender, RoutedEventArgs e)
{
    EventTypeSelection.Items.Add("Focus catched!");

}  

这里的问题是,每次我在 ComboBox 上选择项目时都会调用 UserControl_GotFocus。

  1. 我的问题的正确解决方案是什么?
  2. 如果我只想在焦点事件第一次发生时捕获它,那么最好的解决方案是什么?

谢谢!

4

1 回答 1

1

如果是第一次GotFocus调用处理程序,则添加一个布尔参数来注册:

private isFirstTime = true;

private void UserControl_GotFocus(object sender, RoutedEventArgs e)
{
    if (isFirstTime) 
    {
        EventTypeSelection.Items.Add("Focus caught!");
        isFirstTime = false;
    }
} 

或者,您可以在 上移动监控GotFocus事件,UserControl而不是在ComboBox.

于 2013-08-15T08:23:31.687 回答