从用户控件访问窗体面板

本文关键字:体面 窗体 访问 用户 控件 | 更新日期: 2023-09-27 17:57:35

在我的项目中,我使用了Windows窗体和用户控件。表单上有一个面板。我在上面放了用户控件。

当我单击用户控件上的按钮时,我想在Windows窗体面板上加载另一个用户控件。我将面板的修饰符设置为public。

我尝试的代码如下,这是使用的变量:

  • myusercontrolpage1:这是我的第一个用户控件
  • myusercontrolpage1:这是我的第二个用户控件
  • FrmMain:这是我的主要表格
  • pnlOrta:这是我的面板,我在其中加载用户控件

这是不起作用的代码:

 Userclasses.myusercontrolpage1 page1 = new Userclasses.myusercontrolpage1();
 Userclasses.myusercontrolpage2 page2 = new Userclasses.myusercontrolpage2();
 FrmMain pnl = new FrmMain();        
 pnl.pnlOrta.Controls.Clear(); 
 pnl.pnlOrta.Controls.Add(page2);
 pnl.pnlOrta.Dock = DockStyle.Fill;
 pnl.pnlOrta.BringToFront();

当我单击用户控件上的按钮时,我想在Windows窗体面板上加载另一个用户控件。

如何从用户控件访问窗体的面板并加载另一个用户控件?

编辑:

我替换了这个:

FrmMain pnl = new FrmMain();

FrmMain f = (FrmMain)this.ParentForm;

这起到了作用。

从用户控件访问窗体面板

我不确定我是否理解你想做什么,但回答你的这部分问题:

如何从访问表单的面板用户控制。。。

如果您知道您的UserControl将在Panel上加载,那么您可以使用.Parent属性。你可以在你的UserControl中做这样的事情(假设它有一个按钮):

public partial class MyUserControl : UserControl
{
    public MyUserControl()
    {
        InitializeComponent();
    }
    private void button1_Click(object sender, EventArgs e)
    {
        Panel pnl = this.Parent as Panel;
        if (pnl != null)
        {
            pnl.BackColor = Color.Red;
        }
    }
}