我正在创建Windows表单应用程序,其主窗体包含一个面板。按钮单击时,该面板上将加载不同的用户控件。
namespace LearnCSharp
{
public partial class MainForm : Form
{
private void configButton_Click(object sender, EventArgs e)
{
var uControllerDashboard = new Controllers.Dashboard();
panel.Controls.Add(uControllerDashboard);
updateNotification("active");
}
private void updateNotification(string state)
{
switch (state)
{
case "active" :
//Do something here
break;
}
}
}
}
点击配置按钮后,它会将Dashboard用户控制器加载到面板, Dashboard userControl 中有另一个应用按钮。当我点击该按钮时,我需要在 MainForm类中调用 updatNotification 方法。
namespace LearnCSharp.Controllers
{
public partial class Dashboard : UserControl
{
private void btnApply_Click(object sender, EventArgs e)
{
// Need to call updateNotification method here.
}
}
}
我怎样才能达到我的要求。我感谢任何帮助。感谢。
答案 0 :(得分:2)
使用事件。
不是在UserControl中调用MainForm,而是在UserControl中创建一个事件,让MainForm订阅该事件。在UserControl中,您只需要触发事件。
网上有很多关于此的例子。看看这个:
How do I make an Event in the Usercontrol and Have it Handeled in the Main Form?
How do i raise an event in a usercontrol and catch it in mainpage?
希望这有帮助。