1

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

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

UserControl 的文档没有显示任何方法OnShown
GotFocus将要求用户单击控件以更新它。

4

2 回答 2

0

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

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

不是当你改变焦点时。如果您想在每次用户选择 TabConrol 上的选项卡时运行某些东西,您可以使用另一个事件。 TabIndexChanged看起来是您最好的选择,GotFocus也可能是值得一看的东西。

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

  • 进入
  • 获得焦点
  • 离开
  • 证实
  • 已验证
  • 失去焦点
于 2013-10-23T21:25:42.277 回答
0

答案原来是使用OnRefresh()

公共覆盖无效刷新()
{
this.myBindingSource.ResetBindings(假);
base.Refresh();
}

于 2013-10-29T18:36:57.810 回答