以下代码来自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
会要求用户单击该控件以进行更新。
答案 0 :(得分:0)
OnLoad
事件仅在首次创建对象时发生
Load事件在创建控件之后但在之前发生 控制第一次变得可见。
更改焦点时不显示。如果您想在每次用户选择TabConrol上的选项卡时运行某些内容,则可以使用其他事件。 TabIndexChanged
看起来是您的最佳选择,GotFocus
可能也值得关注。
焦点事件按以下顺序发生:
答案 1 :(得分:0)
答案是使用OnRefresh()
:
public override void Refresh()
{
this.myBindingSource.ResetBindings(false);
base.Refresh();
}