单击UserControl选项卡页面时触发事件

时间:2013-10-23 21:00:15

标签: c# winforms events

以下代码来自System.Windows.Forms.UserControl并且可以正常使用。它与其他UserControl一起包含在标签页(本身就是用户控件)上。用户可以通过单击另一个选项卡,执行某些操作,然后单击返回此选项卡页面来单击此选项卡页面。 “做一些事情”可能包括更改此控件正在显示的数据。但是,单击返回时,不会调用此控件或其父控件的OnLoad()方法,因此不会调用OnViewReady()并且不会更新控件。将使用什么事件来捕获单击返回原始标签页?

protected override void OnLoad (System.EventArgs e)
{
    if (this._presenter != null)
    {
        this._presenter.OnViewReady();
    }
    base.OnLoad (e);
}

The docs for UserControl没有显示方法OnShown GotFocus会要求用户单击该控件以进行更新。

2 个答案:

答案 0 :(得分:0)

OnLoad事件仅在首次创建对象时发生

  

Load事件在创建控件之后但在之前发生   控制第一次变得可见。

更改焦点时不显示。如果您想在每次用户选择TabConrol上的选项卡时运行某些内容,则可以使用其他事件。 TabIndexChanged看起来是您的最佳选择,GotFocus可能也值得关注。

焦点事件按以下顺序发生:

  • 输入
  • 的GotFocus
  • 保留
  • 验证
  • 验证
  • 引发LostFocus

答案 1 :(得分:0)

答案是使用OnRefresh()

public override void Refresh()
{
    this.myBindingSource.ResetBindings(false);
    base.Refresh();
}