从用户控件访问窗体面板
本文关键字:体面 窗体 访问 用户 控件 | 更新日期: 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;
}
}
}