【问题标题】:How to call a method after user control is visible用户控件可见后如何调用方法
【发布时间】:2011-05-22 06:15:47
【问题描述】:

我用 C# 创建了一个带有两个用户控件的 Windows 应用程序。

当表单加载时,第一个用户控件被加载(并显示),当我点击下一步时,我加载第二个用户控件。

现在我希望在用户控件可见时调用此用户控件中的方法。

我不能这样做。如果我从 Load 事件中调用该方法,它会在控件可见之前被触发。

有人可以指导我在控件可见后如何调用方法。

【问题讨论】:

  • 前几天我刚尝试这样做。对于它的价值,我很快意识到强迫我搜索这样一个事件的任何东西都表明我的设计是错误的。你想在这里做什么?

标签: c# .net winforms desktop-application


【解决方案1】:

您可能想要使用VisibleChanged 事件。

例如:

userControl2.VisibleChanged += new EventHandler(this.UserControl2VisibleChanged);

private void UserControl2VisibleChanged(object sender, EventArgs e)
{
   if(userControl2.Visible)
   {
      CallMyMethodIWantToRunWhenUserControl2IsVisibleHere();
   }
}

【讨论】:

  • VisibleChanged 可能无法满足提问者的要求。首次加载 UserControl 时不一定会引发它,因为它的可见性实际上并没有更改。 (Visible 属性默认为“True”。)
  • 更新了答案,例如在 UserControls 可见时调用方法。
  • 您始终可以使用 userControl2.Visible = true;在初始化并触发你的方法.. :)
  • 我无法使用您提供的代码。它甚至在控件可见之前调用该方法。能否请您再次检查代码
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-02-10
  • 2011-03-17
  • 1970-01-01
  • 2011-09-01
  • 2015-04-13
  • 1970-01-01
  • 2011-07-13
相关资源
最近更新 更多