【问题标题】:User Control showing in panel issue面板问题中显示的用户控件
【发布时间】:2017-09-22 21:02:15
【问题描述】:

我有一个有 3 个面板的 mainForm。 Panel3 是我希望我的用户控件显示的地方。在我的主窗体上,如果我有一个按钮(在左侧菜单上),我会使用此代码并且效果很好:

panel3.Controls.Clear();
UserControl2 userControl2 = new UserControl2();
userControl2.Dock = DockStyle.Fill;
panel3.Controls.Add(userControl2);

我的问题是当我在该用户控件 2 上有一个按钮时,我希望单击该按钮以调出一个名为 Employee List 的 UC。它找不到面板 3。所以我的问题是如何绑定员工列表以在主窗体面板 3 中打开,或者有更好的方法吗?

更新:我做了这个并且它有效..但是它创建了另一个主表单,我的员工列表 UC 现在在 panel3 中打开了.. 我怎样才能让它打开而不创建另一个主表单?

mainForm mf = new mainForm();
mf.panel3.Controls.Clear();
employeeList empList = new employeeList();
empList.Dock = DockStyle.Fill;
mf.panel3.Controls.Add(empList);
mf.Show();

【问题讨论】:

  • 如果我将上面的代码放在 UserControl2 页面上的按钮单击事件中......它无法找到 mainForm 上的面板 3。所以我的问题是如何将它们链接在一起?
  • 你需要注入引用,可能在构造函数中。

标签: c# user-controls panel


【解决方案1】:

这段代码做到了!

mainForm f1 = (mainForm)Application.OpenForms["mainForm"];          
f1.panel3.Controls.Clear();
employeeList empList = new employeeList();
empList.Dock = DockStyle.Fill;
f1.panel3.Controls.Add(empList);
f1.Show();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-26
    • 1970-01-01
    • 2011-04-20
    • 2010-10-01
    • 1970-01-01
    • 2022-01-07
    • 2012-07-19
    • 1970-01-01
    相关资源
    最近更新 更多